From a749b467005935f0463599d7070a4d752aa8670a Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Mon, 15 Dec 2025 11:22:45 +0100 Subject: [PATCH 1/6] Added examples --- MedComNotes/input/fsh/Alias.fsh | 5 +- MedComNotes/input/fsh/Instance-1-minimal.fsh | 93 ++++++++++++ MedComNotes/input/fsh/Instance-2-maximum.fsh | 135 ++++++++++++++++++ .../input/fsh/MedComNotesComposition.fsh | 2 +- .../input/fsh/MedComNotesObservation.fsh | 17 ++- MedComNotes/sushi-config.yaml | 2 +- 6 files changed, 248 insertions(+), 6 deletions(-) create mode 100644 MedComNotes/input/fsh/Instance-1-minimal.fsh create mode 100644 MedComNotes/input/fsh/Instance-2-maximum.fsh diff --git a/MedComNotes/input/fsh/Alias.fsh b/MedComNotes/input/fsh/Alias.fsh index a9c9969..618f58d 100644 --- a/MedComNotes/input/fsh/Alias.fsh +++ b/MedComNotes/input/fsh/Alias.fsh @@ -1,3 +1,6 @@ Alias: $Loinc = http://loinc.org -Alias: $ClassCodeCS = http://medcomfhir.dk/ig/xdsmetadata/CodeSystem/MedCom-ihe-classcode-CS //skal måske ikke bruges alligevel \ No newline at end of file +Alias: $ClassCodeCS = http://medcomfhir.dk/ig/xdsmetadata/CodeSystem/MedCom-ihe-classcode-CS //skal måske ikke bruges alligevel +Alias: $ObsStatusCodeSystem = http://hl7.org/fhir/observation-status +Alias: $MedComObsExtValueAttachment = http://medcomfhir.dk/ig/core/StructureDefinition/medcom-observation-value-attachment-extension +Alias: $PractitionerRole = http://medcomfhir.dk/ig/terminology/CodeSystem/medcom-core-PractitionerRolesSKSadministrativ diff --git a/MedComNotes/input/fsh/Instance-1-minimal.fsh b/MedComNotes/input/fsh/Instance-1-minimal.fsh new file mode 100644 index 0000000..2a7d541 --- /dev/null +++ b/MedComNotes/input/fsh/Instance-1-minimal.fsh @@ -0,0 +1,93 @@ +Instance: 9521a7f0-bad4-4a46-8c51-cd8378b24106 +InstanceOf: MedComNotesBundle +Usage: #example +Title: "Bundle instance" +Description: "Bundle instance" +* type = #document +* timestamp = 2026-12-10T10:18:00+01:00 +* identifier.system = "urn:ietf:rfc:3986" +* identifier.value = "urn:uuid:8a471893-0cc2-4695-ba67-8638d4fcbe2f" +* entry[+].fullUrl = "http://medcomfhir.dk/ig/dk-medcom-notes/Composition/43fe2ddc-fd31-443b-bef0-e29c030d6572" +* entry[=].resource = 43fe2ddc-fd31-443b-bef0-e29c030d6572 +* entry[+].fullUrl = "http://medcomfhir.dk/ig/dk-medcom-notes/Observation/d2c9d517-3abd-450e-a3c2-18f18da6fd88" +* entry[=].resource = d2c9d517-3abd-450e-a3c2-18f18da6fd88 +* entry[+].fullUrl = "http://medcomfhir.dk/ig/dk-medcom-notes/Patient/b3b07166-24d7-462b-acb3-1a29269c4740" +* entry[=].resource = b3b07166-24d7-462b-acb3-1a29269c4740 +* entry[+].fullUrl = "http://medcomfhir.dk/ig/dk-medcom-notes/Organization/b3860fb8-4b1d-4be5-8290-e6a026d10555" +* entry[=].resource = b3860fb8-4b1d-4be5-8290-e6a026d10555 + +Instance: 43fe2ddc-fd31-443b-bef0-e29c030d6572 +InstanceOf: MedComNotesComposition +Description: "Composition example for consultation note" +Usage: #example +//* meta.profile = "1.0" //Indsæt formatcode? +* text.status = #generated +* text.div = "
Consultation note example
" +* identifier.system = "urn:ietf:rfc:3986" +* identifier.value = "urn:uuid:07585abe-9862-489d-8fa6-0a64e2eaccb0" +* status = #final +* type.coding.system = "http://loinc.org" +* type.coding.code = #11488-4 +* type.coding.display = "Consult note" +* category.coding.system = $ClassCodeCS +* category.coding.code = #001 +* category.coding.display = "Klinisk rapport" +* subject = Reference(b3b07166-24d7-462b-acb3-1a29269c4740) +* author[institution] = Reference(b3860fb8-4b1d-4be5-8290-e6a026d10555) +* title = "Journalnotat for 3001749995" +* confidentiality = #N +* event.period.start = "2026-12-10T10:00:00+01:00" +* section[0].entry[0] = Reference(d2c9d517-3abd-450e-a3c2-18f18da6fd88) +* date = "2026-12-10T10:15:00+01:00" +* language = #da "Danish" + + +Instance: b3b07166-24d7-462b-acb3-1a29269c4740 +InstanceOf: MedComDocumentPatient +Title: "Patient instance - 2nd ConditionList" +Description: "Patient instance - 2nd ConditionList - Niels Test Vendelboe" +* identifier[cpr].system = "urn:oid:1.2.208.176.1.2" +* identifier[cpr].value = "3001749995" +* name[official].use = #official +* name[official].family = "Vendelboe" +* name[official].given[0] = "Niels" +* name[official].given[1] = "Test" +* birthDate = "1974-01-30" +* gender = #male + + +Instance: b3860fb8-4b1d-4be5-8290-e6a026d10555 +InstanceOf: MedComDocumentOrganization +Title: "Organization" +Description: "Instance of an author organization" +Usage: #example +* text.status = #generated +* text.div = "
Consultation note example
" +* identifier[SOR-ID].value = "61741000016007" +* identifier[SOR-ID].system = "urn:oid:1.2.208.176.1.1" +* name = "Lægerne Hasseris Bymidte" + + +Instance: d2c9d517-3abd-450e-a3c2-18f18da6fd88 +InstanceOf: MedComNotesObservation +Title: "Observation" +Description: "Observation Journalnote" +Usage: #example +* text.status = #generated +* text.div = "
Example of consultation note
" +* identifier.system = "urn:uuid" +* identifier.value = "3e4907e4-a5f9-4403-b0a0-9b3201a97074" +* status = $ObsStatusCodeSystem#final +* code.coding[LOINC].system = "http://loinc.org" +* code.coding[LOINC].code = #11488-4 +* code.coding[LOINC].display = "Consult note" +* subject = Reference(b3b07166-24d7-462b-acb3-1a29269c4740) +* effectiveDateTime = "2026-12-10" +* performer = Reference(b3860fb8-4b1d-4be5-8290-e6a026d10555) +* extension[valueAttachment].url = $MedComObsExtValueAttachment +* extension[valueAttachment].valueAttachment.contentType = #text/html +* extension[valueAttachment].valueAttachment.title = "Journalnotat" +* extension[valueAttachment].valueAttachment.data = "w6Vyc2tvbnRyb2w6IEJUIDEzOC84MiBtbUhn" + +/*Notat: +årskontrol: BT 138/82 mmHg */ \ No newline at end of file diff --git a/MedComNotes/input/fsh/Instance-2-maximum.fsh b/MedComNotes/input/fsh/Instance-2-maximum.fsh new file mode 100644 index 0000000..0400980 --- /dev/null +++ b/MedComNotes/input/fsh/Instance-2-maximum.fsh @@ -0,0 +1,135 @@ +Instance: ba7d908a-0134-4f28-b5f5-0fcaf088e60b +InstanceOf: MedComNotesBundle +Usage: #example +Title: "Bundle instance" +Description: "Bundle instance" +* type = #document +* timestamp = 2026-12-12T10:05:00+01:00 +* identifier.system = "urn:ietf:rfc:3986" +* identifier.value = "urn:uuid:cf5a0508-063d-4200-9c53-7317ee1a69e4" +* entry[+].fullUrl = "http://medcomfhir.dk/ig/dk-medcom-notes/Composition/cff723a9-fae7-4fc6-8db2-6e49cbbc928a" +* entry[=].resource = cff723a9-fae7-4fc6-8db2-6e49cbbc928a +* entry[+].fullUrl = "http://medcomfhir.dk/ig/dk-medcom-notes/Observation/if810168-ee7c-4f34-8012-9aff6c1d86e7" +* entry[=].resource = if810168-ee7c-4f34-8012-9aff6c1d86e7 +* entry[+].fullUrl = "http://medcomfhir.dk/ig/dk-medcom-notes/Patient/d65cd8db-4520-4264-87be-a5fd01fb9762" +* entry[=].resource = d65cd8db-4520-4264-87be-a5fd01fb9762 +* entry[+].fullUrl = "http://medcomfhir.dk/ig/dk-medcom-notes/Organization/f8d0eb07-5336-4005-9081-b065f9a82663" +* entry[=].resource = f8d0eb07-5336-4005-9081-b065f9a82663 +* entry[+].fullUrl = "http://medcomfhir.dk/ig/dk-medcom-notes/Practitioner/48ed6310-3095-44da-9e34-d1cd6bd830c9" +* entry[=].resource = 48ed6310-3095-44da-9e34-d1cd6bd830c9 +* entry[+].fullUrl = "http://medcomfhir.dk/ig/dk-medcom-notes/PractitionerRole/bb6fa4e1-f8b1-4bf4-b77e-bb03b2cc9820" +* entry[=].resource = bb6fa4e1-f8b1-4bf4-b77e-bb03b2cc9820 + +Instance: cff723a9-fae7-4fc6-8db2-6e49cbbc928a +InstanceOf: MedComNotesComposition +Description: "Composition example for consultation note" +Usage: #example +//* meta.profile = "1.0" //Indsæt formatcode? +* text.status = #generated +* text.div = "
Consultation note example
" +* identifier.system = "urn:ietf:rfc:3986" +* identifier.value = "urn:uuid:47ef2e1b-5f14-42ca-bd8f-feafb4154240" +* status = #final +* type.coding.system = "http://loinc.org" +* type.coding.code = #11488-4 +* type.coding.display = "Consult note" +* category.coding.system = $ClassCodeCS +* category.coding.code = #001 +* category.coding.display = "Klinisk rapport" +* subject = Reference(d65cd8db-4520-4264-87be-a5fd01fb9762) +* author[institution] = Reference(f8d0eb07-5336-4005-9081-b065f9a82663) +* author[+] = Reference(48ed6310-3095-44da-9e34-d1cd6bd830c9) +* title = "Journalnotat for 3001749995" +* confidentiality = #N +* event.period.start = "2026-12-12T10:05:00+01:00" +* section[0].entry[0] = Reference(if810168-ee7c-4f34-8012-9aff6c1d86e7) +* date = "2026-12-12T10:05:00+01:00" +* language = #da "Danish" + + +Instance: d65cd8db-4520-4264-87be-a5fd01fb9762 +InstanceOf: MedComDocumentPatient +Title: "Patient instance - 2nd ConditionList" +Description: "Patient instance - 2nd ConditionList - Niels Test Vendelboe" +* identifier[cpr].system = "urn:oid:1.2.208.176.1.2" +* identifier[cpr].value = "3001749995" +* name[official].use = #official +* name[official].family = "Vendelboe" +* name[official].given[0] = "Niels" +* name[official].given[1] = "Test" +* birthDate = "1974-01-30" +* gender = #male + + +Instance: bb6fa4e1-f8b1-4bf4-b77e-bb03b2cc9820 +InstanceOf: MedComDocumentPractitionerRole +Title: "PractitionerRole" +Description: "PractitionerRole with a role and reference to a practitioner and an organization" +* text.status = #generated +* text.div = "
Consultation note PractitionerRole example
" +* practitioner = Reference(48ed6310-3095-44da-9e34-d1cd6bd830c9) +* code = $PractitionerRole#speciallaegeipraksis +* identifier.system = "urn:uuid" +* identifier.value = "9a6fb982-ba4a-41d0-ac09-f04cc51c8f38" +* organization = Reference(f8d0eb07-5336-4005-9081-b065f9a82663) + +Instance: 48ed6310-3095-44da-9e34-d1cd6bd830c9 +InstanceOf: MedComDocumentPractitioner +Title: "Practitioner" +Description: "Instance of a practitioner" +Usage: #example +* text.status = #generated +* text.div = "
Consultation note Practitioner example
" +* name.given = "Sidsel" +* name.family = "Andersen" +* identifier.system = "urn:uuid" +* identifier.value = "0ee2db70-d972-4497-a156-0a8109aaa771" + +Instance: f8d0eb07-5336-4005-9081-b065f9a82663 +InstanceOf: MedComDocumentOrganization +Title: "Organization" +Description: "Instance of an author organization" +Usage: #example +* text.status = #generated +* text.div = "
Consultation note Organization example
" +* identifier[SOR-ID].value = "61741000016007" +* identifier[SOR-ID].system = "urn:oid:1.2.208.176.1.1" +* identifier[Ydernummer].value = "77410" +* identifier[Ydernummer].system = "urn:oid:1.2.208.176.1.4" +* name = "Lægerne Hasseris Bymidte" + + +Instance: if810168-ee7c-4f34-8012-9aff6c1d86e7 +InstanceOf: MedComNotesObservation +Title: "Observation" +Description: "Observation Journalnote" +Usage: #example +* text.status = #generated +* text.div = "
Example of consultation note
" +* identifier.system = "urn:uuid" +* identifier.value = "3e4907e4-a5f9-4403-b0a0-9b3201a97074" +* status = $ObsStatusCodeSystem#final +* code.coding[LOINC].system = "http://loinc.org" +* code.coding[LOINC].code = #11488-4 +* code.coding[LOINC].display = "Consult note" +* subject = Reference(d65cd8db-4520-4264-87be-a5fd01fb9762) +* effectiveDateTime = "2026-12-12T10:05:00+01:00" +* performer = Reference(48ed6310-3095-44da-9e34-d1cd6bd830c9) +* extension[valueAttachment].url = $MedComObsExtValueAttachment +* extension[valueAttachment].valueAttachment.contentType = #text/html +* extension[valueAttachment].valueAttachment.title = "Årskontrol af diabetes" +* extension[valueAttachment].valueAttachment.data = "IDxwPlBhdGllbnRlbiBzZXMgdGlsIDxiPsOlcnNrb250cm9sIGFmIGRpYWJldGVzPC9iPi4gQmVoYW5kbGluZyBmw7hsZ2VzLCBvZyBwdC4gYW5naXZlciBpbmdlbiBoeXBvZ2x5a8OmbWlza2UgZXBpc29kZXIuPC9wPgoKPHA+T2JqZWt0aXZ0Ojxici8+CkJUIDEzOC84MiBtbUhnLiBCTUkgPGk+MjcsMzwvaT4uIEZvZHN0YXR1cyB1LmEuPC9wPgoKPHA+UGFyYWtsaW5pazo8YnIvPgpIYkExYyA1OCBtbW9sL21vbCAoPGVtPm92ZXIgbcOlbDwvZW0+KS48L3A+Cgo8cD5WdXJkZXJpbmcvcGxhbjogPGI+VHlwZSAyIGRpYWJldGVzPC9iPiBtZWQgZGVsdmlzIHJlZ3VsZXJpbmcuIEp1c3RlcmluZyBhZiBtZXRmb3JtaW4gb2cgcsOlZGdpdm5pbmcgb20gbGl2c3N0aWwuIEtvbnRyb2wgb20gNiBtZHIuPC9wPgoKPHA+VW5kZXJza3JpZnQ6IERyLiA8dHQ+QW5kZXJzZW48L3R0PjwvcD4=" + + +/*

Patienten ses til årskontrol af diabetes. Behandling følges, og pt. angiver ingen hypoglykæmiske episoder.

+ +

Objektivt:
+BT 138/82 mmHg. BMI 27,3. Fodstatus u.a.

+ +

Paraklinik:
+HbA1c 58 mmol/mol (over mål).

+ +

Vurdering/plan: Type 2 diabetes med delvis regulering. Justering af metformin og rådgivning om livsstil. Kontrol om 6 mdr.

+ +

Underskrift: Dr. Andersen

+ */ \ No newline at end of file diff --git a/MedComNotes/input/fsh/MedComNotesComposition.fsh b/MedComNotes/input/fsh/MedComNotesComposition.fsh index 8e34495..ddddcee 100644 --- a/MedComNotes/input/fsh/MedComNotesComposition.fsh +++ b/MedComNotes/input/fsh/MedComNotesComposition.fsh @@ -4,7 +4,7 @@ Id: medcom-notes-composition Description: "A profile for the MedCom Notes Composition resource." * type.coding.system = $Loinc (exactly) * type.coding.code = #11488-4 (exactly) -* type.coding.display = "Consultation Note" (exactly) +* type.coding.display = "Consult note" (exactly) * date ^short = "Last update of the note (Da: Sidste opdatering af notatet)" * title ^short = "Title MUST be 'Journalnotat for **CPR-nummer**'" * author only Reference(MedComDocumentOrganization or MedComDocumentPractitioner or MedComDocumentPractitionerRole) //SKS: Det kan vel ikke være et careteam? diff --git a/MedComNotes/input/fsh/MedComNotesObservation.fsh b/MedComNotes/input/fsh/MedComNotesObservation.fsh index 450105e..f2a20d5 100644 --- a/MedComNotes/input/fsh/MedComNotesObservation.fsh +++ b/MedComNotes/input/fsh/MedComNotesObservation.fsh @@ -10,10 +10,21 @@ Description: "Observation profile intended to be used in MedCom's Notes standard * effective[x] ^short = "The time the note was written" * effectiveDateTime MS * effectiveDateTime ^short = "The time the note was written (Da: Oprettelsestidspunkt for notatet)" -* effectiveDateTime obeys medcom-datetime-has-time-offset-zulu // SKS: skal vi have invarianten med som de har i EKG? * code.coding[LOINC] 1..1 MS * code.coding[LOINC].code MS * code.coding[LOINC].code = #11488-4 (exactly) * code.coding[LOINC].display 1.. MS -* code.coding[LOINC].display = "Consultation Note" (exactly) -* code.coding[LOINC].system MS \ No newline at end of file +* code.coding[LOINC].display = "Consult note" (exactly) +* code.coding[LOINC].system MS +* extension[valueAttachment].url MS +* extension[valueAttachment] 1..1 MS +* extension[valueAttachment].valueAttachment 1..1 MS +* extension[valueAttachment].valueAttachment.data 1..1 MS +* extension[valueAttachment].valueAttachment.data ^short = "Base64-encoded content of the EKG recording PDF/A document." +* extension[valueAttachment].valueAttachment.contentType 1..1 MS +* extension[valueAttachment].valueAttachment.contentType = #text/html (exactly) +* extension[valueAttachment].valueAttachment.contentType ^short = "MIME type of the attached EKG recording." +* extension[valueAttachment].valueAttachment.title 1..1 MS +* extension[valueAttachment].valueAttachment.title ^short = "Either the title of the note written by the responsible or 'Journalnotat'." + + diff --git a/MedComNotes/sushi-config.yaml b/MedComNotes/sushi-config.yaml index c9fbf1f..6d47317 100644 --- a/MedComNotes/sushi-config.yaml +++ b/MedComNotes/sushi-config.yaml @@ -1,5 +1,5 @@ id: medcom.fhir.dk.notes -canonical: http://medcomfhir.dk/ig/notes +canonical: http://medcomfhir.dk/ig/dk-medcom-notes name: MedComNotes title: DK MedCom Notes description: The DK MedCom Notes IG From 69337f4f000b51793b92d2f97b42a1d9018be872 Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Mon, 15 Dec 2025 11:52:00 +0100 Subject: [PATCH 2/6] moved folder --- MedComNotes/.gitignore => .gitignore | 0 MedComNotes/_build.bat => _build.bat | 0 MedComNotes/_gencontinuous.bat => _gencontinuous.bat | 0 MedComNotes/_gencontinuous.sh => _gencontinuous.sh | 0 MedComNotes/_genonce.bat => _genonce.bat | 0 MedComNotes/_genonce.sh => _genonce.sh | 0 MedComNotes/_updatePublisher.bat => _updatePublisher.bat | 0 MedComNotes/_updatePublisher.sh => _updatePublisher.sh | 0 MedComNotes/ig.ini => ig.ini | 0 {MedComNotes/input => input}/fsh/Alias.fsh | 0 {MedComNotes/input => input}/fsh/Helpers/Obligations.fsh | 0 {MedComNotes/input => input}/fsh/Instance-1-minimal.fsh | 0 {MedComNotes/input => input}/fsh/Instance-2-maximum.fsh | 0 {MedComNotes/input => input}/fsh/Invariant.fsh | 0 {MedComNotes/input => input}/fsh/MedComNotesBundle.fsh | 0 {MedComNotes/input => input}/fsh/MedComNotesComposition.fsh | 0 {MedComNotes/input => input}/fsh/MedComNotesDocumentReference.fsh | 0 {MedComNotes/input => input}/fsh/MedComNotesObservation.fsh | 0 {MedComNotes/input => input}/ignoreWarnings.txt | 0 .../pagecontent/StructureDefinition-medcom-notes-bundle-intro.md | 0 .../StructureDefinition-medcom-notes-composition-intro.md | 0 .../StructureDefinition-medcom-notes-documentreference-intro.md | 0 .../StructureDefinition-medcom-notes-observation-intro.md | 0 {MedComNotes/input => input}/pagecontent/dependencies.xml | 0 {MedComNotes/input => input}/pagecontent/downloads.md | 0 {MedComNotes/input => input}/pagecontent/examples.md | 0 {MedComNotes/input => input}/pagecontent/index.md | 0 {MedComNotes/input => input}/pagecontent/profiles.xml | 0 {MedComNotes/input => input}/puml/MedComNotes.puml | 0 MedComNotes/sushi-config.yaml => sushi-config.yaml | 0 30 files changed, 0 insertions(+), 0 deletions(-) rename MedComNotes/.gitignore => .gitignore (100%) rename MedComNotes/_build.bat => _build.bat (100%) rename MedComNotes/_gencontinuous.bat => _gencontinuous.bat (100%) rename MedComNotes/_gencontinuous.sh => _gencontinuous.sh (100%) rename MedComNotes/_genonce.bat => _genonce.bat (100%) rename MedComNotes/_genonce.sh => _genonce.sh (100%) rename MedComNotes/_updatePublisher.bat => _updatePublisher.bat (100%) rename MedComNotes/_updatePublisher.sh => _updatePublisher.sh (100%) rename MedComNotes/ig.ini => ig.ini (100%) rename {MedComNotes/input => input}/fsh/Alias.fsh (100%) rename {MedComNotes/input => input}/fsh/Helpers/Obligations.fsh (100%) rename {MedComNotes/input => input}/fsh/Instance-1-minimal.fsh (100%) rename {MedComNotes/input => input}/fsh/Instance-2-maximum.fsh (100%) rename {MedComNotes/input => input}/fsh/Invariant.fsh (100%) rename {MedComNotes/input => input}/fsh/MedComNotesBundle.fsh (100%) rename {MedComNotes/input => input}/fsh/MedComNotesComposition.fsh (100%) rename {MedComNotes/input => input}/fsh/MedComNotesDocumentReference.fsh (100%) rename {MedComNotes/input => input}/fsh/MedComNotesObservation.fsh (100%) rename {MedComNotes/input => input}/ignoreWarnings.txt (100%) rename {MedComNotes/input => input}/pagecontent/StructureDefinition-medcom-notes-bundle-intro.md (100%) rename {MedComNotes/input => input}/pagecontent/StructureDefinition-medcom-notes-composition-intro.md (100%) rename {MedComNotes/input => input}/pagecontent/StructureDefinition-medcom-notes-documentreference-intro.md (100%) rename {MedComNotes/input => input}/pagecontent/StructureDefinition-medcom-notes-observation-intro.md (100%) rename {MedComNotes/input => input}/pagecontent/dependencies.xml (100%) rename {MedComNotes/input => input}/pagecontent/downloads.md (100%) rename {MedComNotes/input => input}/pagecontent/examples.md (100%) rename {MedComNotes/input => input}/pagecontent/index.md (100%) rename {MedComNotes/input => input}/pagecontent/profiles.xml (100%) rename {MedComNotes/input => input}/puml/MedComNotes.puml (100%) rename MedComNotes/sushi-config.yaml => sushi-config.yaml (100%) diff --git a/MedComNotes/.gitignore b/.gitignore similarity index 100% rename from MedComNotes/.gitignore rename to .gitignore diff --git a/MedComNotes/_build.bat b/_build.bat similarity index 100% rename from MedComNotes/_build.bat rename to _build.bat diff --git a/MedComNotes/_gencontinuous.bat b/_gencontinuous.bat similarity index 100% rename from MedComNotes/_gencontinuous.bat rename to _gencontinuous.bat diff --git a/MedComNotes/_gencontinuous.sh b/_gencontinuous.sh similarity index 100% rename from MedComNotes/_gencontinuous.sh rename to _gencontinuous.sh diff --git a/MedComNotes/_genonce.bat b/_genonce.bat similarity index 100% rename from MedComNotes/_genonce.bat rename to _genonce.bat diff --git a/MedComNotes/_genonce.sh b/_genonce.sh similarity index 100% rename from MedComNotes/_genonce.sh rename to _genonce.sh diff --git a/MedComNotes/_updatePublisher.bat b/_updatePublisher.bat similarity index 100% rename from MedComNotes/_updatePublisher.bat rename to _updatePublisher.bat diff --git a/MedComNotes/_updatePublisher.sh b/_updatePublisher.sh similarity index 100% rename from MedComNotes/_updatePublisher.sh rename to _updatePublisher.sh diff --git a/MedComNotes/ig.ini b/ig.ini similarity index 100% rename from MedComNotes/ig.ini rename to ig.ini diff --git a/MedComNotes/input/fsh/Alias.fsh b/input/fsh/Alias.fsh similarity index 100% rename from MedComNotes/input/fsh/Alias.fsh rename to input/fsh/Alias.fsh diff --git a/MedComNotes/input/fsh/Helpers/Obligations.fsh b/input/fsh/Helpers/Obligations.fsh similarity index 100% rename from MedComNotes/input/fsh/Helpers/Obligations.fsh rename to input/fsh/Helpers/Obligations.fsh diff --git a/MedComNotes/input/fsh/Instance-1-minimal.fsh b/input/fsh/Instance-1-minimal.fsh similarity index 100% rename from MedComNotes/input/fsh/Instance-1-minimal.fsh rename to input/fsh/Instance-1-minimal.fsh diff --git a/MedComNotes/input/fsh/Instance-2-maximum.fsh b/input/fsh/Instance-2-maximum.fsh similarity index 100% rename from MedComNotes/input/fsh/Instance-2-maximum.fsh rename to input/fsh/Instance-2-maximum.fsh diff --git a/MedComNotes/input/fsh/Invariant.fsh b/input/fsh/Invariant.fsh similarity index 100% rename from MedComNotes/input/fsh/Invariant.fsh rename to input/fsh/Invariant.fsh diff --git a/MedComNotes/input/fsh/MedComNotesBundle.fsh b/input/fsh/MedComNotesBundle.fsh similarity index 100% rename from MedComNotes/input/fsh/MedComNotesBundle.fsh rename to input/fsh/MedComNotesBundle.fsh diff --git a/MedComNotes/input/fsh/MedComNotesComposition.fsh b/input/fsh/MedComNotesComposition.fsh similarity index 100% rename from MedComNotes/input/fsh/MedComNotesComposition.fsh rename to input/fsh/MedComNotesComposition.fsh diff --git a/MedComNotes/input/fsh/MedComNotesDocumentReference.fsh b/input/fsh/MedComNotesDocumentReference.fsh similarity index 100% rename from MedComNotes/input/fsh/MedComNotesDocumentReference.fsh rename to input/fsh/MedComNotesDocumentReference.fsh diff --git a/MedComNotes/input/fsh/MedComNotesObservation.fsh b/input/fsh/MedComNotesObservation.fsh similarity index 100% rename from MedComNotes/input/fsh/MedComNotesObservation.fsh rename to input/fsh/MedComNotesObservation.fsh diff --git a/MedComNotes/input/ignoreWarnings.txt b/input/ignoreWarnings.txt similarity index 100% rename from MedComNotes/input/ignoreWarnings.txt rename to input/ignoreWarnings.txt diff --git a/MedComNotes/input/pagecontent/StructureDefinition-medcom-notes-bundle-intro.md b/input/pagecontent/StructureDefinition-medcom-notes-bundle-intro.md similarity index 100% rename from MedComNotes/input/pagecontent/StructureDefinition-medcom-notes-bundle-intro.md rename to input/pagecontent/StructureDefinition-medcom-notes-bundle-intro.md diff --git a/MedComNotes/input/pagecontent/StructureDefinition-medcom-notes-composition-intro.md b/input/pagecontent/StructureDefinition-medcom-notes-composition-intro.md similarity index 100% rename from MedComNotes/input/pagecontent/StructureDefinition-medcom-notes-composition-intro.md rename to input/pagecontent/StructureDefinition-medcom-notes-composition-intro.md diff --git a/MedComNotes/input/pagecontent/StructureDefinition-medcom-notes-documentreference-intro.md b/input/pagecontent/StructureDefinition-medcom-notes-documentreference-intro.md similarity index 100% rename from MedComNotes/input/pagecontent/StructureDefinition-medcom-notes-documentreference-intro.md rename to input/pagecontent/StructureDefinition-medcom-notes-documentreference-intro.md diff --git a/MedComNotes/input/pagecontent/StructureDefinition-medcom-notes-observation-intro.md b/input/pagecontent/StructureDefinition-medcom-notes-observation-intro.md similarity index 100% rename from MedComNotes/input/pagecontent/StructureDefinition-medcom-notes-observation-intro.md rename to input/pagecontent/StructureDefinition-medcom-notes-observation-intro.md diff --git a/MedComNotes/input/pagecontent/dependencies.xml b/input/pagecontent/dependencies.xml similarity index 100% rename from MedComNotes/input/pagecontent/dependencies.xml rename to input/pagecontent/dependencies.xml diff --git a/MedComNotes/input/pagecontent/downloads.md b/input/pagecontent/downloads.md similarity index 100% rename from MedComNotes/input/pagecontent/downloads.md rename to input/pagecontent/downloads.md diff --git a/MedComNotes/input/pagecontent/examples.md b/input/pagecontent/examples.md similarity index 100% rename from MedComNotes/input/pagecontent/examples.md rename to input/pagecontent/examples.md diff --git a/MedComNotes/input/pagecontent/index.md b/input/pagecontent/index.md similarity index 100% rename from MedComNotes/input/pagecontent/index.md rename to input/pagecontent/index.md diff --git a/MedComNotes/input/pagecontent/profiles.xml b/input/pagecontent/profiles.xml similarity index 100% rename from MedComNotes/input/pagecontent/profiles.xml rename to input/pagecontent/profiles.xml diff --git a/MedComNotes/input/puml/MedComNotes.puml b/input/puml/MedComNotes.puml similarity index 100% rename from MedComNotes/input/puml/MedComNotes.puml rename to input/puml/MedComNotes.puml diff --git a/MedComNotes/sushi-config.yaml b/sushi-config.yaml similarity index 100% rename from MedComNotes/sushi-config.yaml rename to sushi-config.yaml From 6643088f1e037dad85c947cf7e822493ca17457c Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Mon, 15 Dec 2025 15:19:25 +0100 Subject: [PATCH 3/6] Added document-profiles --- input/fsh/Alias.fsh | 5 ++ input/fsh/MedComDocumentBundle.fsh | 26 +++++++ input/fsh/MedComDocumentComposition.fsh | 79 ++++++++++++++++++++ input/fsh/MedComDocumentObservation.fsh | 11 +++ input/fsh/MedComDocumentOrganization.fsh | 6 ++ input/fsh/MedComDocumentPractitioner.fsh | 11 +++ input/fsh/MedComDocumentPractitionerRole.fsh | 10 +++ input/fsh/MedComDocumentSourcePatient.fsh | 21 ++++++ sushi-config.yaml | 2 +- 9 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 input/fsh/MedComDocumentBundle.fsh create mode 100644 input/fsh/MedComDocumentComposition.fsh create mode 100644 input/fsh/MedComDocumentObservation.fsh create mode 100644 input/fsh/MedComDocumentOrganization.fsh create mode 100644 input/fsh/MedComDocumentPractitioner.fsh create mode 100644 input/fsh/MedComDocumentPractitionerRole.fsh create mode 100644 input/fsh/MedComDocumentSourcePatient.fsh diff --git a/input/fsh/Alias.fsh b/input/fsh/Alias.fsh index 618f58d..d285ad3 100644 --- a/input/fsh/Alias.fsh +++ b/input/fsh/Alias.fsh @@ -4,3 +4,8 @@ Alias: $ClassCodeCS = http://medcomfhir.dk/ig/xdsmetadata/CodeSystem/MedCom-ihe- Alias: $ObsStatusCodeSystem = http://hl7.org/fhir/observation-status Alias: $MedComObsExtValueAttachment = http://medcomfhir.dk/ig/core/StructureDefinition/medcom-observation-value-attachment-extension Alias: $PractitionerRole = http://medcomfhir.dk/ig/terminology/CodeSystem/medcom-core-PractitionerRolesSKSadministrativ +Alias: $Language = http://medcomfhir.dk/ig/xdsmetadata/ValueSet/MedCom-ihe-core-languagecode-VS +Alias: $FormatCode = http://medcomfhir.dk/ig/xdsmetadata/ValueSet/MedCom-ihe-core-formatcode-VS +Alias: $TypeCode = http://medcomfhir.dk/ig/xdsmetadata/ValueSet/MedCom-ihe-core-typecode-VS +Alias: $ClassCode = http://medcomfhir.dk/ig/xdsmetadata/ValueSet/MedCom-ihe-core-classcode-VS + \ No newline at end of file diff --git a/input/fsh/MedComDocumentBundle.fsh b/input/fsh/MedComDocumentBundle.fsh new file mode 100644 index 0000000..e8c8adf --- /dev/null +++ b/input/fsh/MedComDocumentBundle.fsh @@ -0,0 +1,26 @@ +Profile: MedComDocumentBundle +Parent: Bundle +Id: medcom-document-bundle +Description: "[TEMPORARY] The Bundle profile for a document" +* id 1.. +* id MS +* identifier 1..1 MS +* type MS +* type = #document +* type ^short = "Always a document" +* timestamp 1..1 MS +* timestamp ^short = "[DocumentEntry.creationTime] Date and time that the FHIR Document is created." +* entry 1.. MS +* entry.fullUrl 1..1 MS +* entry.resource 1.. MS + +/* +Instance: document +InstanceOf: MedComDocumentBundle +Usage: #example +* type = #document +* timestamp = 2024-05-01T12:00:00+01:00 +* identifier.value = "7c596b9a-112e-4386-ae71-5ecdd3ed7c50" +* entry[+].fullUrl = "https://medcomfhir.dk/ig/carecommunication/MessageHeader/CompositionExample" +* entry[=].resource = CompositionExample + */ \ No newline at end of file diff --git a/input/fsh/MedComDocumentComposition.fsh b/input/fsh/MedComDocumentComposition.fsh new file mode 100644 index 0000000..92f5c76 --- /dev/null +++ b/input/fsh/MedComDocumentComposition.fsh @@ -0,0 +1,79 @@ +Alias: $loinc = http://loinc.org +Alias: $v3-ActCode = http://terminology.hl7.org/CodeSystem/v3-ActCode +Alias: $list-order = http://terminology.hl7.org/CodeSystem/list-order +Alias: $list-empty-reason = http://terminology.hl7.org/CodeSystem/list-empty-reason + +Profile: MedComDocumentComposition +Parent: Composition +Id: medcom-document-composition +Description: "[TEMPORARY] The profile of the MedCom Document Composition containing the minimum allowed content." +* id 1.. MS +* text MS +* text ^short = "The narrative text SHALL always be included when exchanging a MedCom FHIR Bundle." +* text.status MS +* text.div MS +* meta.profile 1..1 MS +* identifier 1.. MS +* identifier.system 1.. MS +* identifier.system ^short = "[DocumentEntry.uniqueId] Sender organization OID (Object Identifier). Example: 1.2.208.184 (MedCom OID)." +* identifier.value 1.. MS +* identifier.value ^short = "[DocumentEntry.uniqueId] UUID." +* identifier ^short = "The Composition identifier" +* date MS +* confidentiality 1..1 MS +* status = #final +* status MS +* type 1..1 MS +* type ^short = "[DocumentEntry.typeCode] Kind of document" +* type.coding 1.. MS +* type.coding.system 1.. MS +* type.coding.code 1.. MS +* type.coding.display 1.. MS +* type from $TypeCode (required) +* category ..1 MS +* category from $ClassCode (extensible) +* category.coding 1..1 MS +* category.coding.code 1.. MS +* category.coding.system 1.. MS +* category.coding.display 1.. MS +* category ^short = "[DocumentEntry.classCode] Categorization of document" +* subject 1.. MS +* subject only Reference(MedComDocumentPatient) +* subject ^type.aggregation = #bundled +* event 1..1 MS +* event.code MS +* event.period 1..1 MS +* event.period ^short = "[DocumentEntry.serviceStartTime, DocumentEntry.serviceStopTime] Time of service that is being documented." +* event.period.start 1..1 MS +* event.period.end 0..1 MS +* event.detail 0..* MS +* event.detail ^short = "[DocumentEntry.referenceIdList] Related identifiers or resources" +* author ..2 MS +* author only Reference(MedComDocumentOrganization or MedComDocumentPractitionerRole or MedComDocumentPractitioner or MedComDocumentPatient or DkCoreRelatedPerson or Device) +* author ^slicing.discriminator[0].type = #profile + * ^slicing.discriminator[0].path = "$this.resolve()" + * ^slicing.rules = #open +* author contains + institution 1..1 MS +* author ^short = "[DocumentEntry.author] The slice author:institution ensures one mandatory organizational author. +Any author element that does not match this slice is interpreted +as an author person." +* author[institution] only Reference(MedComDocumentOrganization) +* author[institution] ^short = "The organization who authored the document." +* author ^type.aggregation = #bundled +* attester 0..1 MS +* attester.party 0..1 MS +* attester.mode MS +* attester.party only Reference(MedComDocumentPractitioner) +* attester.party ^short = "[DocumentEntry.legalAuthenticator] Who authenticated the document." +* attester.party ^type.aggregation = #bundled +* title MS +* title ^short = "[DocumentEntry.title] The readable title of the document." +* language 1..1 MS +* language from $Language (extensible) +* language ^short = "[DocumentEntry.languageCode] Human language of the content" +* section 1.. MS +* section.text MS //RCH: Hvad er dette felt til? Det er med fra tidligere, men jeg ved ikke hvad vi bruger det til. Skal det fjernes? +* section.entry MS +* meta 1.. MS +* meta.profile ^short = "[DocumentEntry.formatCode] Indicates the FHIR Composition profile name used as the formatCode in the DocumentEntry for the individual MedCom FHIR Document standards." diff --git a/input/fsh/MedComDocumentObservation.fsh b/input/fsh/MedComDocumentObservation.fsh new file mode 100644 index 0000000..d4033b3 --- /dev/null +++ b/input/fsh/MedComDocumentObservation.fsh @@ -0,0 +1,11 @@ +Profile: MedComDocumentObservation +Parent: MedComCoreObservation +Id: medcom-document-observation +Title: "MedComDocumentObservation" +Description: "[TEMPORARY] Observation profile to be used in MedCom FHIR Documents." +* identifier 1..1 MS +* identifier.value 1..1 MS +* identifier.system 1..1 MS +* identifier ^short = "Globally unique, stable identifier for this resource. The same identifier SHALL be used when this resource is recreated from the same source data." +* subject only Reference(MedComDocumentPatient) +* performer only Reference(MedComDocumentOrganization or MedComDocumentPractitioner or MedComDocumentPractitionerRole or MedComDocumentPatient or DkCoreRelatedPerson) diff --git a/input/fsh/MedComDocumentOrganization.fsh b/input/fsh/MedComDocumentOrganization.fsh new file mode 100644 index 0000000..3dd143e --- /dev/null +++ b/input/fsh/MedComDocumentOrganization.fsh @@ -0,0 +1,6 @@ +Profile: MedComDocumentOrganization +Parent: MedComCoreOrganization +Id: medcom-document-organization +Description: "[TEMPORARY] A profile including requirements for a MedCom Document Organization resource" +* name 1.. MS + diff --git a/input/fsh/MedComDocumentPractitioner.fsh b/input/fsh/MedComDocumentPractitioner.fsh new file mode 100644 index 0000000..1a3a65a --- /dev/null +++ b/input/fsh/MedComDocumentPractitioner.fsh @@ -0,0 +1,11 @@ +Profile: MedComDocumentPractitioner +Parent: MedComCorePractitioner +Id: medcom-document-practitioner +Description: "[TEMPORARY] A profile including requirements for a MedCom Document Practitioner" +* identifier 1..1 MS +* identifier.value 1..1 MS +* identifier.system 1..1 MS +* identifier ^short = "Globally unique, stable identifier for this resource. The same identifier SHALL be used when this resource is recreated from the same source data." +* name 1.. +* name.given 1.. MS +* name.family 1.. MS \ No newline at end of file diff --git a/input/fsh/MedComDocumentPractitionerRole.fsh b/input/fsh/MedComDocumentPractitionerRole.fsh new file mode 100644 index 0000000..5d6fd79 --- /dev/null +++ b/input/fsh/MedComDocumentPractitionerRole.fsh @@ -0,0 +1,10 @@ +Profile: MedComDocumentPractitionerRole +Parent: MedComCorePractitionerRole +Id: medcom-document-practitionerrole +Description: "[TEMPORARY] Document PractitionerRole resource used to describe the role of a healthcare professional or another actor involved in citizen or patient care." +* identifier 1..1 MS +* identifier.value 1..1 MS +* identifier.system 1..1 MS +* identifier ^short = "Globally unique, stable identifier for this resource. The same identifier SHALL be used when this resource is recreated from the same source data." +* practitioner only Reference(MedComDocumentPractitioner) +* organization only Reference(MedComDocumentOrganization) \ No newline at end of file diff --git a/input/fsh/MedComDocumentSourcePatient.fsh b/input/fsh/MedComDocumentSourcePatient.fsh new file mode 100644 index 0000000..2a751fc --- /dev/null +++ b/input/fsh/MedComDocumentSourcePatient.fsh @@ -0,0 +1,21 @@ +Profile: MedComDocumentPatient +Parent: DkCorePatient +Id: medcom-document-patient +Description: "[TEMPORARY] A profile including requirements for a MedCom Document Patient." +* id MS +* text MS +* text ^short = "The narrative text SHALL always be included when exchanging a MedCom FHIR Bundle." +* text.status MS +* text.div MS +* text MS +* identifier 1..1 MS +* identifier[cpr] ^short = "Unique identification number for all citizens in Denmark, called civil person register (CPR-number)." +* identifier[cpr] 1..1 MS +* identifier[cpr].value 1..1 MS SU +* identifier[cpr].system 1..1 MS +* name 1..1 MS +* name[official] 1..1 MS +* name[official].given 1.. MS SU +* name[official].family 1.. MS SU +* birthDate 1.. MS +* gender 1.. MS diff --git a/sushi-config.yaml b/sushi-config.yaml index 6d47317..260c26b 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -19,7 +19,7 @@ dependencies: medcom.fhir.dk.core: dev medcom.fhir.dk.terminology: 2.0.2 medcom.fhir.dk.xdsmetadata: dev - medcom.fhir.dk.document: dev + #medcom.fhir.dk.document: dev hl7.fhir.uv.extensions.r4: 5.2.0 hl7.fhir.extensions.r5: 4.0.1 From 0067386d5c0e53af40e917afe8b5e01e9a00f5ea Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Mon, 15 Dec 2025 15:27:46 +0100 Subject: [PATCH 4/6] Added extension and dep. --- input/fsh/MedComDocumentObservation.fsh | 20 ++++++++++++++++++++ sushi-config.yaml | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/input/fsh/MedComDocumentObservation.fsh b/input/fsh/MedComDocumentObservation.fsh index d4033b3..7fd9a8d 100644 --- a/input/fsh/MedComDocumentObservation.fsh +++ b/input/fsh/MedComDocumentObservation.fsh @@ -9,3 +9,23 @@ Description: "[TEMPORARY] Observation profile to be used in MedCom FHIR Document * identifier ^short = "Globally unique, stable identifier for this resource. The same identifier SHALL be used when this resource is recreated from the same source data." * subject only Reference(MedComDocumentPatient) * performer only Reference(MedComDocumentOrganization or MedComDocumentPractitioner or MedComDocumentPractitionerRole or MedComDocumentPatient or DkCoreRelatedPerson) + +Profile: MedComObservationValueAttachmentExtension +Parent: Extension +Id: medcom-observation-value-attachment-extension +Title: "MedCom Observation ValueAttachment Extension" +Description: "[TEMPORARY] Generic extension for Observation value as Attachment type." + +// Canonical URL for extensionen +* ^url = "http://medcomfhir.dk/ig/core/StructureDefinition/medcom-observation-value-attachment-extension" +* ^status = #active + +// Hvor extensionen må bruges +* ^context[0].type = #element +* ^context[0].expression = "Observation" +* ^context[+].type = #element +* ^context[=].expression = "Observation.extension" +* . ^short = "Observation value as attachment." +* url 1..1 +* url = "http://medcomfhir.dk/ig/core/StructureDefinition/medcom-observation-value-attachment-extension" (exactly) +* value[x] only Attachment \ No newline at end of file diff --git a/sushi-config.yaml b/sushi-config.yaml index 260c26b..51390ce 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -16,7 +16,7 @@ jurisdiction: urn:iso:std:iso:3166#DK "Denmark" dependencies: ihe.iti.mhd: 4.2.3 hl7.fhir.dk.core: 3.4.0 - medcom.fhir.dk.core: dev + medcom.fhir.dk.core: 3.0.0 medcom.fhir.dk.terminology: 2.0.2 medcom.fhir.dk.xdsmetadata: dev #medcom.fhir.dk.document: dev From 9a34173876e758f71d66a6a92080fb954d8bfb4f Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Tue, 16 Dec 2025 09:42:10 +0100 Subject: [PATCH 5/6] Updated extension usage --- input/fsh/MedComDocumentObservation.fsh | 2 +- input/fsh/MedComDocumentSourcePatient.fsh | 2 +- input/fsh/MedComNotesObservation.fsh | 4 +++- sushi-config.yaml | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/input/fsh/MedComDocumentObservation.fsh b/input/fsh/MedComDocumentObservation.fsh index 7fd9a8d..127e02f 100644 --- a/input/fsh/MedComDocumentObservation.fsh +++ b/input/fsh/MedComDocumentObservation.fsh @@ -8,7 +8,7 @@ Description: "[TEMPORARY] Observation profile to be used in MedCom FHIR Document * identifier.system 1..1 MS * identifier ^short = "Globally unique, stable identifier for this resource. The same identifier SHALL be used when this resource is recreated from the same source data." * subject only Reference(MedComDocumentPatient) -* performer only Reference(MedComDocumentOrganization or MedComDocumentPractitioner or MedComDocumentPractitionerRole or MedComDocumentPatient or DkCoreRelatedPerson) +* performer only Reference(MedComDocumentOrganization or MedComDocumentPractitioner or MedComDocumentPatient or DkCoreRelatedPerson) Profile: MedComObservationValueAttachmentExtension Parent: Extension diff --git a/input/fsh/MedComDocumentSourcePatient.fsh b/input/fsh/MedComDocumentSourcePatient.fsh index 2a751fc..5d904ec 100644 --- a/input/fsh/MedComDocumentSourcePatient.fsh +++ b/input/fsh/MedComDocumentSourcePatient.fsh @@ -1,5 +1,5 @@ Profile: MedComDocumentPatient -Parent: DkCorePatient +Parent: MedComCorePatient Id: medcom-document-patient Description: "[TEMPORARY] A profile including requirements for a MedCom Document Patient." * id MS diff --git a/input/fsh/MedComNotesObservation.fsh b/input/fsh/MedComNotesObservation.fsh index f2a20d5..3b29b23 100644 --- a/input/fsh/MedComNotesObservation.fsh +++ b/input/fsh/MedComNotesObservation.fsh @@ -16,7 +16,9 @@ Description: "Observation profile intended to be used in MedCom's Notes standard * code.coding[LOINC].display 1.. MS * code.coding[LOINC].display = "Consult note" (exactly) * code.coding[LOINC].system MS -* extension[valueAttachment].url MS +* value[x] +* extension contains + MedComObservationValueAttachmentExtension named valueAttachment 1..1 * extension[valueAttachment] 1..1 MS * extension[valueAttachment].valueAttachment 1..1 MS * extension[valueAttachment].valueAttachment.data 1..1 MS diff --git a/sushi-config.yaml b/sushi-config.yaml index 51390ce..6d47317 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -16,10 +16,10 @@ jurisdiction: urn:iso:std:iso:3166#DK "Denmark" dependencies: ihe.iti.mhd: 4.2.3 hl7.fhir.dk.core: 3.4.0 - medcom.fhir.dk.core: 3.0.0 + medcom.fhir.dk.core: dev medcom.fhir.dk.terminology: 2.0.2 medcom.fhir.dk.xdsmetadata: dev - #medcom.fhir.dk.document: dev + medcom.fhir.dk.document: dev hl7.fhir.uv.extensions.r4: 5.2.0 hl7.fhir.extensions.r5: 4.0.1 From 4b2128212df255a7372110c855af9de790bcf590 Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Tue, 16 Dec 2025 14:26:28 +0100 Subject: [PATCH 6/6] Comment out document-profiles and updated mimetype --- input/fsh/Instance-1-minimal.fsh | 2 +- input/fsh/Instance-2-maximum.fsh | 2 +- input/fsh/MedComDocumentBundle.fsh | 2 +- input/fsh/MedComDocumentComposition.fsh | 3 ++- input/fsh/MedComDocumentObservation.fsh | 4 ++-- input/fsh/MedComDocumentOrganization.fsh | 3 ++- input/fsh/MedComDocumentPractitioner.fsh | 4 ++-- input/fsh/MedComDocumentPractitionerRole.fsh | 4 ++-- input/fsh/MedComDocumentSourcePatient.fsh | 3 ++- input/fsh/MedComNotesObservation.fsh | 2 +- 10 files changed, 16 insertions(+), 13 deletions(-) diff --git a/input/fsh/Instance-1-minimal.fsh b/input/fsh/Instance-1-minimal.fsh index 2a7d541..b1a6797 100644 --- a/input/fsh/Instance-1-minimal.fsh +++ b/input/fsh/Instance-1-minimal.fsh @@ -85,7 +85,7 @@ Usage: #example * effectiveDateTime = "2026-12-10" * performer = Reference(b3860fb8-4b1d-4be5-8290-e6a026d10555) * extension[valueAttachment].url = $MedComObsExtValueAttachment -* extension[valueAttachment].valueAttachment.contentType = #text/html +* extension[valueAttachment].valueAttachment.contentType = #application/xhtml+xml * extension[valueAttachment].valueAttachment.title = "Journalnotat" * extension[valueAttachment].valueAttachment.data = "w6Vyc2tvbnRyb2w6IEJUIDEzOC84MiBtbUhn" diff --git a/input/fsh/Instance-2-maximum.fsh b/input/fsh/Instance-2-maximum.fsh index 0400980..3b8a687 100644 --- a/input/fsh/Instance-2-maximum.fsh +++ b/input/fsh/Instance-2-maximum.fsh @@ -116,7 +116,7 @@ Usage: #example * effectiveDateTime = "2026-12-12T10:05:00+01:00" * performer = Reference(48ed6310-3095-44da-9e34-d1cd6bd830c9) * extension[valueAttachment].url = $MedComObsExtValueAttachment -* extension[valueAttachment].valueAttachment.contentType = #text/html +* extension[valueAttachment].valueAttachment.contentType = #application/xhtml+xml * extension[valueAttachment].valueAttachment.title = "Årskontrol af diabetes" * extension[valueAttachment].valueAttachment.data = "IDxwPlBhdGllbnRlbiBzZXMgdGlsIDxiPsOlcnNrb250cm9sIGFmIGRpYWJldGVzPC9iPi4gQmVoYW5kbGluZyBmw7hsZ2VzLCBvZyBwdC4gYW5naXZlciBpbmdlbiBoeXBvZ2x5a8OmbWlza2UgZXBpc29kZXIuPC9wPgoKPHA+T2JqZWt0aXZ0Ojxici8+CkJUIDEzOC84MiBtbUhnLiBCTUkgPGk+MjcsMzwvaT4uIEZvZHN0YXR1cyB1LmEuPC9wPgoKPHA+UGFyYWtsaW5pazo8YnIvPgpIYkExYyA1OCBtbW9sL21vbCAoPGVtPm92ZXIgbcOlbDwvZW0+KS48L3A+Cgo8cD5WdXJkZXJpbmcvcGxhbjogPGI+VHlwZSAyIGRpYWJldGVzPC9iPiBtZWQgZGVsdmlzIHJlZ3VsZXJpbmcuIEp1c3RlcmluZyBhZiBtZXRmb3JtaW4gb2cgcsOlZGdpdm5pbmcgb20gbGl2c3N0aWwuIEtvbnRyb2wgb20gNiBtZHIuPC9wPgoKPHA+VW5kZXJza3JpZnQ6IERyLiA8dHQ+QW5kZXJzZW48L3R0PjwvcD4=" diff --git a/input/fsh/MedComDocumentBundle.fsh b/input/fsh/MedComDocumentBundle.fsh index e8c8adf..7ce0436 100644 --- a/input/fsh/MedComDocumentBundle.fsh +++ b/input/fsh/MedComDocumentBundle.fsh @@ -1,4 +1,4 @@ -Profile: MedComDocumentBundle +/* Profile: MedComDocumentBundle Parent: Bundle Id: medcom-document-bundle Description: "[TEMPORARY] The Bundle profile for a document" diff --git a/input/fsh/MedComDocumentComposition.fsh b/input/fsh/MedComDocumentComposition.fsh index 92f5c76..8c34677 100644 --- a/input/fsh/MedComDocumentComposition.fsh +++ b/input/fsh/MedComDocumentComposition.fsh @@ -1,4 +1,4 @@ -Alias: $loinc = http://loinc.org +/* Alias: $loinc = http://loinc.org Alias: $v3-ActCode = http://terminology.hl7.org/CodeSystem/v3-ActCode Alias: $list-order = http://terminology.hl7.org/CodeSystem/list-order Alias: $list-empty-reason = http://terminology.hl7.org/CodeSystem/list-empty-reason @@ -77,3 +77,4 @@ as an author person." * section.entry MS * meta 1.. MS * meta.profile ^short = "[DocumentEntry.formatCode] Indicates the FHIR Composition profile name used as the formatCode in the DocumentEntry for the individual MedCom FHIR Document standards." + */ \ No newline at end of file diff --git a/input/fsh/MedComDocumentObservation.fsh b/input/fsh/MedComDocumentObservation.fsh index 127e02f..54be572 100644 --- a/input/fsh/MedComDocumentObservation.fsh +++ b/input/fsh/MedComDocumentObservation.fsh @@ -1,4 +1,4 @@ -Profile: MedComDocumentObservation +/* Profile: MedComDocumentObservation Parent: MedComCoreObservation Id: medcom-document-observation Title: "MedComDocumentObservation" @@ -28,4 +28,4 @@ Description: "[TEMPORARY] Generic extension for Observation value as Attachment * . ^short = "Observation value as attachment." * url 1..1 * url = "http://medcomfhir.dk/ig/core/StructureDefinition/medcom-observation-value-attachment-extension" (exactly) -* value[x] only Attachment \ No newline at end of file +* value[x] only Attachment */ \ No newline at end of file diff --git a/input/fsh/MedComDocumentOrganization.fsh b/input/fsh/MedComDocumentOrganization.fsh index 3dd143e..a298397 100644 --- a/input/fsh/MedComDocumentOrganization.fsh +++ b/input/fsh/MedComDocumentOrganization.fsh @@ -1,6 +1,7 @@ -Profile: MedComDocumentOrganization +/* Profile: MedComDocumentOrganization Parent: MedComCoreOrganization Id: medcom-document-organization Description: "[TEMPORARY] A profile including requirements for a MedCom Document Organization resource" * name 1.. MS + */ \ No newline at end of file diff --git a/input/fsh/MedComDocumentPractitioner.fsh b/input/fsh/MedComDocumentPractitioner.fsh index 1a3a65a..ced79f9 100644 --- a/input/fsh/MedComDocumentPractitioner.fsh +++ b/input/fsh/MedComDocumentPractitioner.fsh @@ -1,4 +1,4 @@ -Profile: MedComDocumentPractitioner +/* Profile: MedComDocumentPractitioner Parent: MedComCorePractitioner Id: medcom-document-practitioner Description: "[TEMPORARY] A profile including requirements for a MedCom Document Practitioner" @@ -8,4 +8,4 @@ Description: "[TEMPORARY] A profile including requirements for a MedCom Document * identifier ^short = "Globally unique, stable identifier for this resource. The same identifier SHALL be used when this resource is recreated from the same source data." * name 1.. * name.given 1.. MS -* name.family 1.. MS \ No newline at end of file +* name.family 1.. MS */ \ No newline at end of file diff --git a/input/fsh/MedComDocumentPractitionerRole.fsh b/input/fsh/MedComDocumentPractitionerRole.fsh index 5d6fd79..afd0ee1 100644 --- a/input/fsh/MedComDocumentPractitionerRole.fsh +++ b/input/fsh/MedComDocumentPractitionerRole.fsh @@ -1,4 +1,4 @@ -Profile: MedComDocumentPractitionerRole +/* Profile: MedComDocumentPractitionerRole Parent: MedComCorePractitionerRole Id: medcom-document-practitionerrole Description: "[TEMPORARY] Document PractitionerRole resource used to describe the role of a healthcare professional or another actor involved in citizen or patient care." @@ -7,4 +7,4 @@ Description: "[TEMPORARY] Document PractitionerRole resource used to describe th * identifier.system 1..1 MS * identifier ^short = "Globally unique, stable identifier for this resource. The same identifier SHALL be used when this resource is recreated from the same source data." * practitioner only Reference(MedComDocumentPractitioner) -* organization only Reference(MedComDocumentOrganization) \ No newline at end of file +* organization only Reference(MedComDocumentOrganization) */ \ No newline at end of file diff --git a/input/fsh/MedComDocumentSourcePatient.fsh b/input/fsh/MedComDocumentSourcePatient.fsh index 5d904ec..ddb3093 100644 --- a/input/fsh/MedComDocumentSourcePatient.fsh +++ b/input/fsh/MedComDocumentSourcePatient.fsh @@ -1,4 +1,4 @@ -Profile: MedComDocumentPatient +/* Profile: MedComDocumentPatient Parent: MedComCorePatient Id: medcom-document-patient Description: "[TEMPORARY] A profile including requirements for a MedCom Document Patient." @@ -19,3 +19,4 @@ Description: "[TEMPORARY] A profile including requirements for a MedCom Document * name[official].family 1.. MS SU * birthDate 1.. MS * gender 1.. MS + */ \ No newline at end of file diff --git a/input/fsh/MedComNotesObservation.fsh b/input/fsh/MedComNotesObservation.fsh index 3b29b23..b00f3b9 100644 --- a/input/fsh/MedComNotesObservation.fsh +++ b/input/fsh/MedComNotesObservation.fsh @@ -24,7 +24,7 @@ Description: "Observation profile intended to be used in MedCom's Notes standard * extension[valueAttachment].valueAttachment.data 1..1 MS * extension[valueAttachment].valueAttachment.data ^short = "Base64-encoded content of the EKG recording PDF/A document." * extension[valueAttachment].valueAttachment.contentType 1..1 MS -* extension[valueAttachment].valueAttachment.contentType = #text/html (exactly) +* extension[valueAttachment].valueAttachment.contentType = #application/xhtml+xml (exactly) * extension[valueAttachment].valueAttachment.contentType ^short = "MIME type of the attached EKG recording." * extension[valueAttachment].valueAttachment.title 1..1 MS * extension[valueAttachment].valueAttachment.title ^short = "Either the title of the note written by the responsible or 'Journalnotat'."