Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
21c78dd
Added dependency to IHEM HD
RikkeVestesen Aug 20, 2025
4037d9c
Added DK-core DocumentReference + MHD MinialDocumentReference
RikkeVestesen Aug 20, 2025
1839941
Added Basic DocumentReference
RikkeVestesen Aug 21, 2025
1e884f9
Udated dependencies
RikkeVestesen Oct 10, 2025
50f54e8
Updated dependencies
RikkeVestesen Nov 5, 2025
5fd797e
Added obligation helpers
RikkeVestesen Nov 5, 2025
2168b78
Commented on DocumentReference
RikkeVestesen Nov 5, 2025
365d30b
Updated DocRefs
RikkeVestesen Nov 7, 2025
ee1b494
Corrected docref
RikkeVestesen Nov 11, 2025
efe7aa3
Update MedComContainedDocumentReference.fsh
RikkeVestesen Nov 11, 2025
8b0643e
Updated
RikkeVestesen Nov 12, 2025
5f42fb5
Updated
RikkeVestesen Nov 13, 2025
ef15cb1
Updated
RikkeVestesen Nov 13, 2025
f718622
Update MedComContainedDocumentReference.fsh
RikkeVestesen Nov 15, 2025
7a4e573
Correccted dependencies
RikkeVestesen Nov 17, 2025
ba4c780
Added comments
RikkeVestesen Nov 17, 2025
49143a1
Updated event
RikkeVestesen Nov 17, 2025
a724bad
Updated comment
RikkeVestesen Nov 17, 2025
9463019
Update MedComContainedDocumentReference.fsh
RikkeVestesen Nov 17, 2025
a147f1c
Create MedComDocumentAuthorInstitutionOrganization.fsh
SGA-MedCom Nov 17, 2025
294817d
Ændret til DEV og teste med author[person]
SGA-MedCom Nov 17, 2025
9c445f0
Updated
RikkeVestesen Nov 18, 2025
ad250ae
Updated
RikkeVestesen Nov 18, 2025
3321e00
Updated
RikkeVestesen Nov 18, 2025
60cb2fa
Updated
RikkeVestesen Nov 18, 2025
b4d4200
added
RikkeVestesen Nov 19, 2025
70a3932
Updated authenticator and attester
RikkeVestesen Nov 19, 2025
6696cf7
Corrected creation and language
RikkeVestesen Nov 19, 2025
c5f7046
udated
RikkeVestesen Nov 19, 2025
ecd0760
Spelling error
RikkeVestesen Nov 24, 2025
808bcdb
Update MedComDocumentBundle.fsh
RikkeVestesen Nov 24, 2025
0e3d1cb
Added DocumentPractitionerRole
RikkeVestesen Nov 24, 2025
c8231a1
added MedComContentDocumentReference and datetime invariant
RikkeVestesen Nov 24, 2025
1743d04
Updated medcom-uuidv4
RikkeVestesen Nov 24, 2025
eaa9b31
added
RikkeVestesen Nov 24, 2025
9e1ab68
Updated creationTime
RikkeVestesen Nov 24, 2025
5915cc4
spelling error
RikkeVestesen Nov 24, 2025
4e412aa
Updated invariant for UUID4
RikkeVestesen Nov 24, 2025
905e238
moved comment
RikkeVestesen Nov 24, 2025
ee5974d
Added type short
RikkeVestesen Nov 25, 2025
439fd8a
Updated composition
RikkeVestesen Nov 25, 2025
767ed99
Removed homecommunityid, added MS to extension and updated identifier
RikkeVestesen Nov 25, 2025
16a8c7c
Edited identifiers
RikkeVestesen Nov 25, 2025
cc61f4e
Update MedComContainedDocumentReference.fsh
RikkeVestesen Nov 25, 2025
37ac166
Fjerne slice for healthcareFacilityTypeCode og practiceSettingCode
SGA-MedCom Nov 26, 2025
8cab2e3
updated comment
RikkeVestesen Nov 26, 2025
11cbb6e
Updated
RikkeVestesen Nov 27, 2025
c809c56
Updated
RikkeVestesen Nov 27, 2025
aec7d74
updated
RikkeVestesen Nov 27, 2025
660bf40
Update MedComContainedDocumentReference.fsh
RikkeVestesen Nov 27, 2025
4e9fbb2
Updated DocRef and Composition
RikkeVestesen Nov 28, 2025
31af072
Updated
RikkeVestesen Nov 28, 2025
1e7675a
Updated
RikkeVestesen Nov 28, 2025
05f240c
Updated
RikkeVestesen Nov 28, 2025
829f3f8
Updated
RikkeVestesen Dec 1, 2025
33a07dd
Updated
RikkeVestesen Dec 1, 2025
846e117
comment removed
RikkeVestesen Dec 1, 2025
d1ef87d
Updated texts
RikkeVestesen Dec 2, 2025
6629dbb
Updated texts
RikkeVestesen Dec 3, 2025
6824383
Corrected UML diagram
RikkeVestesen Dec 3, 2025
3605be6
updated texts and author
RikkeVestesen Dec 3, 2025
95ab1f5
Updated
RikkeVestesen Dec 3, 2025
ab9d3d2
Updated dependency to terminology
RikkeVestesen Dec 4, 2025
bee225b
Corrected category to 0..1 for composition
RikkeVestesen Dec 10, 2025
4db0363
Updated obligations
RikkeVestesen Dec 10, 2025
23692d9
Added description for patient and documentreference
RikkeVestesen Dec 10, 2025
c418344
Added link to mapping in profiles
RikkeVestesen Dec 10, 2025
9d9978f
Update StructureDefinition-medcom-document-composition-intro.md
RikkeVestesen Dec 10, 2025
745a0bb
added ignorewarning expression
RikkeVestesen Dec 11, 2025
1092d01
testing build-site
RikkeVestesen Dec 11, 2025
21d4948
Undo test
RikkeVestesen Dec 11, 2025
4dfdac1
Updated according to review
RikkeVestesen Dec 15, 2025
d34e0d9
Added invariant for formatcode semantinc versioning
RikkeVestesen Dec 17, 2025
ef433e2
Update invariants.fsh
RikkeVestesen Dec 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion input/fsh/Alias.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
Alias: $ActCodes = http://terminology.hl7.org/CodeSystem/v3-ActCode
Alias: $RequestPriority = http://medcomfhir.dk/ig/terminology/ValueSet/medcom-careCommunication-requestPriority
*/

Alias: $obligation = http://hl7.org/fhir/StructureDefinition/obligation

Alias: $QrdTypeCode = http://medcomfhir.dk/ig/xdsmetadata/ValueSet/MedCom-dk-ihe-qrd-typecode-VS
Alias: $QrdEventCode = http://medcomfhir.dk/ig/xdsmetadata/ValueSet/MedCom-dk-ihe-qrd-eventcodelist-VS
Alias: $QrdHomeCommunityID = http://medcomfhir.dk/ig/xdsmetadata/ValueSet/MedCom-ihe-qrd-homeCommunityId-VS
Expand Down Expand Up @@ -50,6 +53,8 @@ Alias: $Language = http://medcomfhir.dk/ig/xdsmetadata/ValueSet/MedCom-ihe-core-
//Alias: $FormatCode = http://medcomfhir.dk/ig/xdsmetadata/ValueSet/MedCom-ihe-apd-formatcode-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: $HomeCommunityID = http://medcomfhir.dk/ig/xdsmetadata/ValueSet/MedCom-ihe-apd-homeCommunityId-VS
Alias: $HomeCommunityID = http://medcomfhir.dk/ig/xdsmetadata/ValueSet/MedCom-ihe-core-homeCommunityId-VS

Expand All @@ -67,4 +72,7 @@ Alias: $PROdkOID = urn:oid:1.2.208.176.7.3.1
Alias: $MedComFormatOID = urn:oid:1.2.208.184.100.10
Alias: $DanishxdsOID = urn:oid:1.2.208.176.8.1
Alias: $IANALanguageOID = urn:oid:2.16.840.1.113883.6.121
Alias: $IANAMediaOID = urn:oid:2.16.840.1.113883.5.79
Alias: $IANAMediaOID = urn:oid:2.16.840.1.113883.5.79

Alias: $v3-ActCode3.0.0 = http://terminology.hl7.org/ValueSet/v3-ActCode|3.0.0
Alias: $sct = http://snomed.info/sct|http://snomed.info/sct/554471000005108 // Danish version - append e.g. /version/20240331 to get a more specific version
11 changes: 11 additions & 0 deletions input/fsh/Helpers/Obligations.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
RuleSet: ProducerShallPutInNarrative(elementName)
* {elementName} ^extension[$obligation][+].extension[code].valueCode = #SHALL:in-narrative
* {elementName} ^extension[$obligation][=].extension[actor].valueCanonical = Canonical(ProducerActor)

Instance: ProducerActor
InstanceOf: ActorDefinition
* name = "Producer of FHIR resources"
* title = "Producer of FHIR resources"
* status = #active
* type = #system
* description = "The system that creates the FHIR resources"
4 changes: 3 additions & 1 deletion input/fsh/Instances.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ Description: "Instance of an author person"
Usage: #example
* name.given = "Sidsel"
* name.family = "Andersen"
* identifier.system = "urn:uuid"
* identifier.value = "ce6f5308-d71b-4ee8-bc41-cc9ddcc15366"

Instance: 8fa7df76-bec2-4fe2-9a44-750030a0eda0
InstanceOf: DkCoreOrganization
InstanceOf: MedComCoreOrganization
Title: "Author Organization"
Description: "Instance of an author organization"
Usage: #example
Expand Down
161 changes: 161 additions & 0 deletions input/fsh/MedComContainedDocumentReference.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
Profile: MedComContainedDocumentReference
Parent: MedComMinimalDocumentReference //OBS: Nedarv direkte fra DkCore når den udgives
Id: medcom-contained-documentreference
Description: "A profile stating the rules, when exchanging a FHIR document in the Danish Healthcare sector using IHE MHD and IHE XDS based document sharing."
* 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

// uniqueId
* masterIdentifier 1..1 MS
* masterIdentifier.value 1..1 MS
* masterIdentifier ^short = "[DocumentEntry.uniqueId] Master Version Specific Identifier"

// entryUUID
* identifier[entryUUID] 1..1 MS
* identifier[entryUUID].value 1..1 MS
* identifier[entryUUID].system 1..1 MS //https://profiles.ihe.net/ITI/MHD/4.2.2/StructureDefinition-IHE.MHD.EntryUUID.Identifier.html
* identifier[entryUUID] ^short = "[DocumentEntry.entryUUID] Identifier for the document"
* identifier[entryUUID].value obeys medcom-uuid
* status MS
* status ^short = "[DocumentEntry.availabilityStatus] current = active | superseded = deprecated"
// TypeCode
* type 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)
* authenticator 0..1 MS
* authenticator ^short = "[DocumentEntry.legalAuthenticator] Who authenticated the document."
* authenticator only Reference(MedComDocumentPractitioner)
* authenticator ^type.aggregation = #contained
// ClassCode
* category 1..1 MS
* category from $ClassCode (extensible)
* category.coding.code 1.. MS
* category.coding.system 1.. MS
* category.coding.display 1.. MS
* category ^short = "[DocumentEntry.classCode] Categorization of document"
* 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
* securityLabel 1..1 MS
* securityLabel.coding 1..1 MS
* securityLabel.coding.system 1.. MS
* securityLabel.coding.code 1.. MS
* securityLabel ^short = "[DocumentEntry.confidentialityCode] Document security-tags"
* subject MS
* subject only Reference(MedComDocumentPatient)
* subject ^type.aggregation = #contained
* subject ^short = "[DocumentEntry.sourcePatientInfo, DocumentEntry.sourcePatientId] Who/what is the subject of the document"
* content.attachment.creation ^short = "[DocumentEntry.creationTime] Date attachment was first created"
* content.attachment.creation 1.. MS
* content.attachment.creation obeys medcom-datetime-has-time-zulu
* content MS
* content.attachment.contentType ^short = "[DocumentEntry.mimeType] Mime type of the content, with charset etc."
* content.attachment.contentType 1.. MS
* content.attachment.contentType from $ContentType
* content.attachment MS
* content.attachment.language ^short = "[DocumentEntry.languageCode] Human language of the content"
* content.attachment.language 1.. MS
* content.attachment.language from $Language (extensible)
* content.attachment.hash 0.. MS
* content.attachment.hash ^short = "[DocumentEntry.hash] Hash of the data (sha-1)"
* content.format ^short = "[DocumentEntry.formatCode] Format/content rules for the document"
* content.format 1.. MS
* content.format.system 1.. MS
* content.format.code 1.. MS
* content.format.display 1.. MS
* content.format from $FormatCode (required)
* content.attachment.size 0.. MS
* content.attachment.title 1.. MS
* content.attachment.url MS
* content.attachment.size ^short = "[DocumentEntry.size] Number of bytes of content."
* content.attachment.title ^short = "[DocumentEntry.title] The readable title of the document."
* content.attachment.url ^short = "[DocumentEntry.URI] URI where the data can be found."
* context 1.. MS
* context.event 0.. MS
* context.event.coding.code 1.. MS
* context.event.coding.system 1.. MS
* context.event ^short = "[DocumentEntry.eventCodeList] Main clinical acts documented."
* context.period MS
* context.period.start 1.. MS
* context.period.end MS
* context.period ^short = "[DocumentEntry.serviceStartTime, DocumentEntry.serviceStopTime] Time of service that is being documented."
* context.facilityType 1.. MS
* context.facilityType.coding 1..1 MS
* context.facilityType.coding.code 1.. MS
* context.facilityType.coding.system 1.. MS
* context.facilityType.coding.display 1.. MS
* context.facilityType from $FacilityType (required)
* context.facilityType ^short = "[DocumentEntry.healthcareFacilityTypeCode] Kind of facility where patient was seen."
* context.practiceSetting 1.. MS
* context.practiceSetting.coding 1..1 MS
* context.practiceSetting.coding.code 1.. MS
* context.practiceSetting.coding.system 1.. MS
* context.practiceSetting.coding.display 1.. MS
* context.practiceSetting from $PracticeSetting (required)
* context.practiceSetting ^short = "[DocumentEntry.practiceSettingCode] Additional details about where the content was created (e.g. clinical specialty)."
* context.related 0..* MS
* context.related ^short = "[DocumentEntry.referenceIdList] Related identifiers or resources."
* context.sourcePatientInfo 1..1 MS
* context.sourcePatientInfo.reference 1.. MS
* context.sourcePatientInfo.identifier 1.. MS
* context.sourcePatientInfo ^short = "[DocumentEntry.sourcePatientId and DocumentEntry.sourcePatientInfo] Patient demographics from source. Must be the same reference as in DocumentReference.subject."
* context.sourcePatientInfo only Reference(MedComDocumentPatient)
* extension MS
* extension[versionid] MS
* extension[versionid] ^short = "Specifies the version of the DocumentReference profile for a standard."

* insert ProducerShallPutInNarrative(id)
* insert ProducerShallPutInNarrative(author[institution])
* insert ProducerShallPutInNarrative(author)
* insert ProducerShallPutInNarrative(subject)
* insert ProducerShallPutInNarrative(status)
* insert ProducerShallPutInNarrative(type.coding.system)
* insert ProducerShallPutInNarrative(type.coding.code)
* insert ProducerShallPutInNarrative(type.coding.display)
* insert ProducerShallPutInNarrative(authenticator)
* insert ProducerShallPutInNarrative(category.coding.code)
* insert ProducerShallPutInNarrative(category.coding.system)
* insert ProducerShallPutInNarrative(category.coding.display)
* insert ProducerShallPutInNarrative(identifier[entryUUID].value)
* insert ProducerShallPutInNarrative(identifier[entryUUID].system)
* insert ProducerShallPutInNarrative(securityLabel.coding.code)
* insert ProducerShallPutInNarrative(securityLabel.coding.system)
* insert ProducerShallPutInNarrative(content.attachment.creation)
* insert ProducerShallPutInNarrative(content.attachment.contentType)
* insert ProducerShallPutInNarrative(content.attachment.language)
* insert ProducerShallPutInNarrative(content.format.system)
* insert ProducerShallPutInNarrative(content.format.code)
* insert ProducerShallPutInNarrative(content.format.display)
* insert ProducerShallPutInNarrative(content.attachment.size)
* insert ProducerShallPutInNarrative(content.attachment.title)
* insert ProducerShallPutInNarrative(content.attachment.url)
* insert ProducerShallPutInNarrative(context.event.coding.code)
* insert ProducerShallPutInNarrative(context.event.coding.system)
* insert ProducerShallPutInNarrative(context.period.start)
* insert ProducerShallPutInNarrative(context.period.end)
* insert ProducerShallPutInNarrative(context.facilityType.coding.code)
* insert ProducerShallPutInNarrative(context.facilityType.coding.system)
* insert ProducerShallPutInNarrative(context.facilityType.coding.display)
* insert ProducerShallPutInNarrative(context.practiceSetting.coding.code)
* insert ProducerShallPutInNarrative(context.practiceSetting.coding.system)
* insert ProducerShallPutInNarrative(context.practiceSetting.coding.display)
* insert ProducerShallPutInNarrative(context.related)
* insert ProducerShallPutInNarrative(context.sourcePatientInfo.reference)
* insert ProducerShallPutInNarrative(context.sourcePatientInfo.identifier)
10 changes: 5 additions & 5 deletions input/fsh/MedComDocumentBundle.fsh
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
// This is a simple example of a FSH file.
// This file can be renamed, and additional FSH files can be added.
// SUSHI will look for definitions in any file using the .fsh ending.
Profile: MedComDocumentBundle
Parent: Bundle
Id: medcom-document-bundle
Description: "The Bundle profile for a document"
* id 1..
* id 1..
* id MS
* id obeys medcom-document-bundle-id-uuid
* identifier 1..1 MS
* type MS
* type = #document
* type ^short = "Always a document"
* timestamp 1..1 MS
* timestamp 1..1 MS
* timestamp obeys medcom-datetime-has-time-offset-zulu
* 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
Expand Down
9 changes: 9 additions & 0 deletions input/fsh/MedComDocumentCareTeam.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Profile: MedComDocumentCareTeam
Parent: MedComCoreCareTeam
Id: medcom-document-careteam
Description: "Careteam participating in the care of a patient."
* 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."
* managingOrganization only Reference(MedComDocumentOrganization)
93 changes: 74 additions & 19 deletions input/fsh/MedComDocumentComposition.fsh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hvad er årsagen til at 'author:person'-slices er fjernet? er det ikke meget fint at sætte krav til, at det skal være en practitioner?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Det er ifølge XDS metadatastandarden muligt at andre end end pracitioner kan være author:person. Det kan også være alle andre profiler jeg har indsat under author elementet inden slicing. Problemet er, at man ikke kan lave en slice der tillader at det kan være flere forskellige ressourcer-/profilertyper der kan tillades i samme slice. Derfor har jeg skrevet, at hvis man indsætter en author ud over organisationen, så skal den opdattes oms author:person, selvom det ikke er en slice.
Kan du se en bedre løsning?

Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
// This is a simple example of a FSH file.
// This file can be renamed, and additional FSH files can be added.
// SUSHI will look for definitions in any file using the .fsh ending.
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
Expand All @@ -10,44 +7,102 @@ Profile: MedComDocumentComposition
Parent: Composition
Id: medcom-document-composition
Description: "The profile of the MedCom Document Composition containing the minimum allowed content."
//* meta.language 0..1 MS
* 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 obeys medcom-uuid
* identifier.value ^short = "[DocumentEntry.uniqueId] UUID."
* identifier ^short = "The Composition identifier"
* date MS
* confidentiality 1..1 MS
* text 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
* date 1..1 MS
* event 0..1 MS
* event.code 0..1 MS
* event.period.start 0..1 MS
* 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
* author ^slicing.discriminator.type = #type
* ^slicing.discriminator.path = "$this.resolve()"
* ^slicing.rules = #closed
* 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 and
person 0..1 MS
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[person] only Reference(MedComDocumentPractitioner)
* author[person] ^short = "The person who authored the document"
* 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
* 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 obeys medcom-canonical-semver
* meta.profile ^short = "[DocumentEntry.formatCode] Indicates the FHIR Composition profile canonical, including an explicit version `|x.y.z`. The value does not map 1:1 to XDS DocumentEntry.formatCode and SHALL be mapped."

* insert ProducerShallPutInNarrative(id)
* insert ProducerShallPutInNarrative(confidentiality)
* insert ProducerShallPutInNarrative(status)
* insert ProducerShallPutInNarrative(type.coding.system)
* insert ProducerShallPutInNarrative(type.coding.code)
* insert ProducerShallPutInNarrative(type.coding.display)
* insert ProducerShallPutInNarrative(category.coding.code)
* insert ProducerShallPutInNarrative(category.coding.system)
* insert ProducerShallPutInNarrative(category.coding.display)
* insert ProducerShallPutInNarrative(subject)
* insert ProducerShallPutInNarrative(event.code)
* insert ProducerShallPutInNarrative(event.period.start)
* insert ProducerShallPutInNarrative(event.period.end)
* insert ProducerShallPutInNarrative(date)
* insert ProducerShallPutInNarrative(event.detail)
* insert ProducerShallPutInNarrative(author[institution])
* insert ProducerShallPutInNarrative(author)
* insert ProducerShallPutInNarrative(attester.mode)
* insert ProducerShallPutInNarrative(attester.party)
* insert ProducerShallPutInNarrative(title)
* insert ProducerShallPutInNarrative(language)
* insert ProducerShallPutInNarrative(section.entry)
* insert ProducerShallPutInNarrative(meta.profile)

/* Instance: CompositionExample
InstanceOf: MedComDocumentComposition
Expand All @@ -56,7 +111,7 @@ Usage: #example
// * identifier.value = "1" // ? -The portion of the identifier typically relevant to the user and which is unique within the context of the system.
* meta.profile = "1.0"
* status = #final
* type = $loinc#11488-4 "Consult note"
* code = $loinc#11488-4 "Consult note"
// * category = $loinc#LP173421-1 "Report"
* subject = Reference(69e475df-20c8-4f54-8cea-9843568205fd)
// * encounter = Reference(Encounter/xcda)
Expand Down
11 changes: 11 additions & 0 deletions input/fsh/MedComDocumentObservation.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Profile: MedComDocumentObservation
Parent: MedComCoreObservation
Id: medcom-document-observation
Title: "MedComDocumentObservation"
Description: "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 MedComDocumentCareTeam or MedComDocumentPatient or DkCoreRelatedPerson)
Loading