如何根据FSH(FHIR Shorthand)语言中的另一个字段使一个字段成为必填字段?
How to make a field required based on another field in FSH (FHIR Shorthand) language?
我正在 DetectedIssue 资源中定义配置文件,并希望在该资源的状态字段 = final 时根据需要制作缓解字段。有人可以帮我怎么做吗?这是我的 DetectedIssue 资源的配置文件定义。
Profile: SystemPatientDetectedIssue
Parent: DetectedIssue
Id: patient-detectedissue
Title: "Patient Alert DetectedIssue"
Description: "Profile of DetectedIssue for capturing patient alerts"
* status from SystemDetectedIssueStatusValueSet (required)
* code 1..1
* code from SystemDetectedIssueCodeValueSet (required)
* patient 1..1
* identifiedDateTime 1..1
* detail 1..1
* author 1..1
* author.identifier 1..1
* author.identifier.type from SystemIdentifierValueSet (required)
// Mitigation required when marking the issue as "final".
// How to Make the mitigation field required when setting the issue as final?
* mitigation 0..1
* mitigation.action.coding from SystemDetectedIssueMitigationActionValueSet
* mitigation.action.text 1..1
* mitigation.date 1..1
* mitigation.author 1..1
下面是上述状态属性的值集定义 (SystemDetectedIssueStatusValueSet):
Alias: OBSERVATION_STATUS = http://hl7.org/fhir/observation-status
ValueSet: SystemDetectedIssueStatusValueSet
Id: system-detected-issue-status-value-set
Title: "System DetectedIssue status ValueSet"
* ^url = https://terminology.system.com/ValueSet/detectedissue-status
* include OBSERVATION_STATUS#registered
* include OBSERVATION_STATUS#cancelled
* include OBSERVATION_STATUS#final
任何依赖于元素之间关系的约束(如 status
和 mitigation
)只能使用不变量来约束。不变量设置在 ElementDefinition.constraint in FHIR, but FSH has a special mechanism for invariants documented here. The most difficult thing about invariants is that they use another language, called FHIRPath, to express the constraint. You should look at the core FHIRPath documentation as well as the FHIR-specific FHIRPath documentation.
对于您的具体示例,您首先要将不变量定义为单独的项目。特殊的 FHIRPath 表达式在表达式字段中:
Invariant: final-mitigation
Description: "If DetectedIssue.status is final, then DetectedIssue.mitigation must be present"
Expression: "status = 'final' implies mitigation.exists()"
Severity: #error
然后,由于它讨论了两个元素,相对于资源的根,您将顶级服从规则添加到您的配置文件中,以引入您刚刚创建的不变量:
* obeys final-mitigation
将来,您很可能会在 chat.fhir.org 的 #shorthand 信息流中提出这些问题,那里有一大群人可以提供帮助。
我正在 DetectedIssue 资源中定义配置文件,并希望在该资源的状态字段 = final 时根据需要制作缓解字段。有人可以帮我怎么做吗?这是我的 DetectedIssue 资源的配置文件定义。
Profile: SystemPatientDetectedIssue
Parent: DetectedIssue
Id: patient-detectedissue
Title: "Patient Alert DetectedIssue"
Description: "Profile of DetectedIssue for capturing patient alerts"
* status from SystemDetectedIssueStatusValueSet (required)
* code 1..1
* code from SystemDetectedIssueCodeValueSet (required)
* patient 1..1
* identifiedDateTime 1..1
* detail 1..1
* author 1..1
* author.identifier 1..1
* author.identifier.type from SystemIdentifierValueSet (required)
// Mitigation required when marking the issue as "final".
// How to Make the mitigation field required when setting the issue as final?
* mitigation 0..1
* mitigation.action.coding from SystemDetectedIssueMitigationActionValueSet
* mitigation.action.text 1..1
* mitigation.date 1..1
* mitigation.author 1..1
下面是上述状态属性的值集定义 (SystemDetectedIssueStatusValueSet):
Alias: OBSERVATION_STATUS = http://hl7.org/fhir/observation-status
ValueSet: SystemDetectedIssueStatusValueSet
Id: system-detected-issue-status-value-set
Title: "System DetectedIssue status ValueSet"
* ^url = https://terminology.system.com/ValueSet/detectedissue-status
* include OBSERVATION_STATUS#registered
* include OBSERVATION_STATUS#cancelled
* include OBSERVATION_STATUS#final
任何依赖于元素之间关系的约束(如 status
和 mitigation
)只能使用不变量来约束。不变量设置在 ElementDefinition.constraint in FHIR, but FSH has a special mechanism for invariants documented here. The most difficult thing about invariants is that they use another language, called FHIRPath, to express the constraint. You should look at the core FHIRPath documentation as well as the FHIR-specific FHIRPath documentation.
对于您的具体示例,您首先要将不变量定义为单独的项目。特殊的 FHIRPath 表达式在表达式字段中:
Invariant: final-mitigation
Description: "If DetectedIssue.status is final, then DetectedIssue.mitigation must be present"
Expression: "status = 'final' implies mitigation.exists()"
Severity: #error
然后,由于它讨论了两个元素,相对于资源的根,您将顶级服从规则添加到您的配置文件中,以引入您刚刚创建的不变量:
* obeys final-mitigation
将来,您很可能会在 chat.fhir.org 的 #shorthand 信息流中提出这些问题,那里有一大群人可以提供帮助。