DICOM-metadataomvandling i vårddatalösningar
Obs
Detta innehåll uppdateras för närvarande.
Den här artikeln förklarar hur miljön DICOM-dataomvandling i vårddatalösningar extraherar och omvandlar DICOM-metadata på olika sjöhusnivåer. Du kan även lära dig om den kompletta omvandlingsprocessen för metadata och förstå omvandlingsmappningen på varje nivå.
Metadataomvandling genom inmatningspipelinen består av följande tre på varandra följande steg:
- Extrahering och omvandling av DICOM-metadata till bronsdeltatabell
- Metadataomvandling från brons- till silverdeltatabell
- Metadataomvandling från silver- till gulddeltatabell
I följande avsnitt beskrivs omvandlingsmappningen för varje steg.
Omvandlingsmappning för DICOM-metadata till bronsdeltatabell
Det finns mer än 5000 DICOM-taggar som definieras av DICOM-standarden, inklusive leverantörsspecifika privata taggar. Det här avsnittet identifierar vilka taggar vi hämtar och förklarar data vid extrahering i bronssjöhuset.
Taggprocessen utför följande åtgärder:
Extrahering från DICOM-filer: Extrahera en samling av alla taggar från DICOM-filerna (DCM) i den optimerade mappstrukturen i bronssjöhuset.
Exkludering av pixeldatatagg: Exkludera DICOM-pixeldatataggen (7FE0,0010) och bildpixeldatamodulens attribut från samlingen. DICOM-pixeldatataggen innehåller information på bild-/pixelnivå.
JSON-mappning: Mappa alla extraherade DICOM-taggar till en JSON-struktur med nyckel/värde-par i följande schema:
METADATA_JSON_DICT_SCHEMA = MapType ( StringType(), StructType([ StructField("vr", StringType(), True), StructField("Value", ArrayType(StringType(), True), True) ]) )
Dessa JSON-par med nyckel/värde skrivs till metadatakolumnen i bronssjöhusets delta-tabell dicomimagingmetastore.
Extrahering och mappning till bronssjöhuset: Extrahera följande 30 DICOM-taggar ytterligare och skriv dem till respektive målkolumner i deltatabellen dicomimagingmetastore:
Källa DICOM-tagg Målkolumn (0020,000D) [studyinstanceuid]
(0010,0010) [patientname]
(0010,0020) [patientid]
(0010,0030) [patientbirthdate]
(0010,0040) [patientsex]
(0008,0050) [accessionnumber]
(0008,0090) [referringphysicianname]
(0008,0020) [studydate]
(0008,1030) [studydescription]
(0008,0061) [modalitiesinstudy]
(0020,000E) [seriesinstanceuid]
(0008,0060) [modality]
(0040,0244) [performedprocedurestepstartdate]
(0008,1090) [manufacturermodelname]
(0008,0018) [sopinstanceuid]
(0008,0030) [studytime]
(0008,0096) [referringphysicianidentificationsequence]
(0008,0201) [timezoneoffsetfromutc]
(0020,1206) [numberofstudyrelatedseries]
(0020,1208) [numberofstudyrelatedinstances]
(0020,0011) [seriesnumber]
(0008,103E) [seriesdescription]
(0020,1209) [numberofseriesrelatedinstances]
(0018,0015) [bodypartexamined]
(0020,0060) [laterality]
(0008,0021) [seriesdate]
(0008,0031) [seriestime]
(0008,0016) [sopclassuid]
(0020,0013) [instancenumber]
(0042,0010) [documenttitle]
Obs
- Mer information om varför vi höjer upp just dessa 30 DICOM-taggar finns i Extrahering av DICOM-taggar.
- För att lära dig mer om inmatningsmönstret (lägga till), gå till Lägga till mönstret i bronssjöhuset.
Loggning av körningstid: Notebook-filens körningsdatum och -tid skrivs till
created_date
kolumnen delta-tabellen dicomimagingmetastore.Lagring av DCM-filsökväg: Den fullständiga filsökvägen för DCM-filen skrivs till kolumnen
filepath
i deltatabellen dicomimagingmetastore.
Omvandlingsmappning för brons till silver deltatabell
I följande tabeller förklaras den fullständiga mappningen för omvandlingen av DICOM-metadata i bronssjöhuset deltatabell dicomimagingmetastore till deltatabellen FHIR ImagingStudy i silversjöhuset.
Käll-DICOM-tagg i dicomimagingmetastore | Målkolumn i ImagingStudy | Mappningsegenskaper |
---|---|---|
- | id |
Ett GUID som genereras med hjälp av Python UUID-modulen. |
- | meta.lastupdated |
Skapa tidsstämpel för NDJSON-filen. |
StudyInstanceUID (0020,000D) Åtkomstnummer (0080,0050) |
identifier |
ImagingStudy.identifier.where(system = 'urn:dicom:uid') =>StudyInstanceUID ImagingStudy.identifier.where(type.coding.system = 'http://terminology.hl7.org/CodeSystem/v2-0203' och type.coding.code = 'ACSN')) =>"AccessionNumber" |
Modaliteter i studie (0008,0061) | modality |
modality = List{code = col('ModalitiesInStudy')} |
Patient-ID (0010,0020) | subject |
""subject"": {""identifier"": {""type"": {""coding"": [{""system"": ""lit('http://terminology.hl7.org/CodeSystem/v2-0203')"",""code"": ""lit('MR')""}]},""value"": ""col('PatientID')""},""type": ""lit('Patient')""}," |
Patientens namn (0010,0010) Patientens födelsedatum (0010,0030) Patientens kön (0010,0040) |
subject |
"subject": {"extension": [{"url": "lit('name')", "valueString": "col('PatientName')"}, {"url": "lit('birthDate')", "valueDateTime": "col('PatientBirthDate')"}, {"url": "lit('gender')", "valueCode": "col('PatientSex')"}]} |
StudyDate (0008,0020) StudyTime (0008,0030) TimezoneOffsetFromUTC(0008,0201) |
started |
concat_ws(' ', col('StudyDate'), col('StudyTime'), col('TimezoneOffsetFromUTC')) |
NumberOfStudyRelatedSeries (0020,1206) | numberOfSeries |
col('NumberOfStudyRelatedSeries') |
NumberOfStudyRelatedInstances (0020,1208) | numberOfInstances |
col('NumberOfStudyRelatedInstances') |
StudyDescription (0008,1030) | description |
col('StudyDescription') |
Detaljer på serienivå
Käll-DICOM-tagg i dicomimagingmetastore | Målkolumn i ImagingStudy | Mappningsegenskaper |
---|---|---|
SeriesInstanceUID (0020,000E) | series.uid |
col('SeriesInstanceUID') |
SeriesNumber (0020,0011) | series.number |
col('SeriesNumber') |
Modalitet (0008,0060) | series.modality |
modality.code = col('Modality') |
SeriesDescription (0008,103E) | series.description |
col('SeriesDescription') |
NumberOfSeriesRelatedInstances (0020,1209) | series.numberOfInstances |
col('NumberOfSeriesRelatedInstances') |
BodyPartExamined (0018,0015) | series.bodySite |
bodySite.display = col('BodyPartExamined') |
Lateralitet (0020,0060) | series.laterality |
laterality.display = col('Laterality') |
SeriesDate (0008,0021) SeriesTime (0008,0031) TimezoneOffsetFromUTC (0008,0201) |
series.started |
concat_ws(' ', col('SeriesDate'), col('SeriesTime'), col('TimezoneOffsetFromUTC')).cast(TimestampType()) |
SOPInstanceUID (0008,0018) | series.instance.uid |
col('SOPInstanceUID') |
SOPClassUID (0008,0016) | series.instance.sopClass |
sopClass.code = col('SOPClassUID') |
InstanceNumber (0020,0013) | series.instance.number |
col('InstanceNumber') |
DocumentTitle (0042,0010) | series.instance.title |
col('DocumentTitle') |
- | status |
"available" |
- | Series.Instance.Extension |
"extension": [{"url": "lit('file_path')", "valueUrl": "col('FilePath')"}] Värdet för FilePath inkluderar ABFS-filsökvägen i OneLake för alla DCM-filer på instansnivå som ingår i denna ImagingStudy. |
- | resourceType |
"ImagingStudy" |
Omvandlingsmappning för silver till guld deltatabell
Följande tabell förklarar den fullständiga kartläggningen för omvandlingen av DICOM-metadata i silversjöhusets deltatabell ImagingStudy för Observational Medical Outcomes Partnership (OMOP) Image_Occurrence i guldsjöhuset.
Källkolumn i ImagingStudy | Målkolumn OMOP i Image_Occurrence | Datatyp | Mappningsegenskaper |
---|---|---|---|
series.uid |
image_occurrence_id |
integer | Unik nyckel som ges till en bildstudiepost. |
subject |
person_id |
integer | Person-ID för den person som är associerad med det registrerade förfarandet. |
series.instance.extension |
local_path |
string | {InstanceID; StoragePath} En samling DCM-filer för alla instanser i serien. Samlingen innehåller en JSON-matris med nyckel/värde-par. |
series.started |
image_occurrence_date |
datum | Datum för förekomst av avbildningsprocedur (serie). |
identifier['StudyInstanceUID'] |
image_study_UID |
string | UID för DICOM-studie |
series.uid |
image_series_UID |
string | UID för DICOM-serien |
series.modality |
modality |
string | Seriens modalitet. |