本文へ移動
cccskills
無料GitHub で公開

clinical-data-requirements

Use this skill when defining clinical data model requirements for Health Cloud: HL7/FHIR data mapping, interoperability requirements, FHIR R4-aligned object activation, CodeableConcept constraints, and middleware translation requirements. NOT for the field-level mapping work itself — use data/fhir-data-mapping. NOT for choosing legacy HC24__ EHR objects vs standard clinical objects — use data/health-cloud-data-model.

インストール方法を見る

含まれるファイル(8)

  • SKILL.md14.6 KB
  • references/examples.md5.7 KB
  • references/gotchas.md7.9 KB
  • references/llm-anti-patterns.md5.9 KB
  • references/metadata-examples.md4.4 KB
  • references/well-architected.md4.7 KB
  • scripts/check_clinical_data_requirements.py4.4 KB
  • templates/clinical-data-requirements-template.md2.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Clinical Data Requirements

Use this skill when defining clinical data model requirements for Health Cloud: enabling the FHIR R4-aligned clinical data model, mapping FHIR resources to Salesforce objects, identifying CodeableConcept and cardinality constraints, and specifying middleware translation for HL7 and FHIR integration. It does NOT cover migration procedures, Apex integration code, or generic data architecture.

Licence gate: the clinical data model is part of Health Cloud and Life Sciences Cloud and is documented as available in Enterprise and Unlimited Editions. The developer guide is titled "Agentforce Health Developer Guide" in Summer '26.


Before Starting

Gather this context before working on anything in this domain:

  • Confirm whether the FHIR-Aligned Clinical Data Model org pref is enabled. The guide says: "To enable these objects in your org, go to FHIR R4 Support Settings in Setup and enable the FHIR-Aligned Clinical Data Model org pref." It also says some objects exist before the pref is on because other data models use them (for example CareObservation, CodeSet, CodeSetBundle, Identifier, PersonName). In metadata the setting is IndustriesSettings.enableClinicalDataModel (API 51.0, default false).
  • Identify the source systems (EHR, payer, HIE) and their standard: FHIR R4, HL7 v2.3, or custom. Each needs a different translation approach.
  • Confirm whether the org is new or legacy. "Starting with the Spring '23 release, new customers won't be able to create records in the packaged EHR objects that have counterpart standard objects in the FHIR R4-aligned data model."
  • Identify CodeableConcept-heavy resources (Condition, Observation, Procedure). CodeSetBundle flattens a CodeableConcept's codings to 15 references (CodeSet1Id through CodeSet15Id).

Questions to Ask Before Configuring

Ask these before mapping a single resource. Each one traces to a gotcha in references/gotchas.md.

QuestionWhy it mattersWhat a good answer addsWhat proper configuration adds over just doing it
"Which FHIR resources or HL7 v2.3 messages arrive, and from which systems?"The org pref, the objects, and the middleware all depend on the resource list (gotchas 1, 5)A resource inventory with volumes and source systemsObjects enabled and mapped before integration build starts
"Do any source concepts carry more than 15 codings?"CodeSetBundle holds 15 coding references (gotcha 2)A coding-priority policy per resourceDeliberate, documented truncation instead of silent loss
"Is this a new org or one that already holds HC24__ EHR data?"New customers cannot create records in packaged EHR objects that have standard counterparts (gotcha 3)The target objects per data type, and a migration decisionNo integration written against objects the org cannot write
"Will patients or caregivers see clinical data in an Experience Cloud site?"Community users need the FHIR R4 for Experience Cloud Sites permission set (gotcha 6)The external audience and the records they may seePortal access designed with the right permission set from the start
"Which source fields are required in Salesforce but optional in FHIR?"condition.code is 0..1 in FHIR but HealthCondition.ConditionCodeId is 1..1 (gotcha 4)A rule for records that arrive without the fieldFewer rejected loads and a defined error path
"How do multi-line addresses and multiple names arrive?"address.line maps to a single Street string, and names map to PersonName child records (gotcha 7)Merge and split rules for the middlewareDemographics that render correctly in Health Cloud components

What a proper requirements package adds over "just loading clinical data": every resource has a target object, every deviation from FHIR is handled on purpose in the middleware, and no record depends on an object the org cannot write.


Core Concepts

Activating the FHIR-Aligned Clinical Data Model

The org pref lives on the FHIR R4 Support Settings page in Setup. The guide lists which objects need it:

Needs the org prefAvailable without it
AllergyIntolerance, ClinicalEncounter (and its child objects), ClinicalServiceRequest, DiagnosticSummary, HealthCondition, MedicationRequest, MedicationStatement, PatientHealthReaction, PatientImmunization, PatientMedicalProcedure, PatientMedicationDosageCareObservation, CodeSet, CodeSetBundle, HealthcareProvider, Identifier, Medication, PersonLanguage, PersonName, Specimen

Enabling the pref also adds fields to standard objects, for example ContactPointPhone.UsageType, Account.SourceSystemIdentifier, Contact.Gender, and Contact.DeceasedDate. The deployable setting is in references/metadata-examples.md.

Salesforce Is Not a 1:1 FHIR R4 Implementation

The guide states that "a middleware integration solution is required to convert messages from HL7 and FHIR-based systems to the fields and objects in Salesforce", and lists the deviations:

FHIR constructSalesforce implementation
CodeableConcept (0..* codings)CodeSetBundle with 15 zero-to-one CodeSet references
Simple value-set codesPicklists (for example Identifier.IdUsageType)
code data typeString (for example CodeSet.Code)
uri for code and identifier systemsString (CodeSet.SourceSystem, Identifier.SourceSystem)
Period, Quantity, Range, RatioFlattened into two or three fields, with a lookup to UnitofMeasure where a unit applies
HumanNamePersonName with FirstName, LastName, FullName, related to the person through ParentRecordId

HL7 v2.3

The clinical data model "also supports many of the HL7 v2.3 message types": ADT, ORM, ORU, MDM, VXU, and RDE messages "can be stored in Salesforce by mapping their constituent segments to fields in Salesforce standard objects". The guide documents segment mappings (PID, PV1, PV2, OBX, AL1, ORC, OBR, RXA, RXE, RXR, RXC). It does not describe a native HL7 v2 listener, so a translation layer still parses the message and writes the mapped fields.

Legacy EHR Objects

New customers since Spring '23 cannot create records in packaged EHR objects that have counterpart standard objects, and future development targets the FHIR R4-aligned model. Typical pairs:

Legacy packaged objectStandard counterpart
HC24__EhrCondition__cHealthCondition
HC24__EhrMedicationStatement__c, HC24__EhrMedicationPrescription__cMedicationStatement, MedicationRequest
HC24__EHRProcedure__cPatientMedicalProcedure
HC24__EhrObservation__cCareObservation
HC24__EhrImmunization__cPatientImmunization
HC24__EhrAllergyIntolerance__cAllergyIntolerance

Earlier versions of this skill named HC24__EhrMedication__c, HC24__EhrLabResult__c, PatientMedication, and MedicalProcedure. None of those names appears in the guide. UNVERIFIED (2026-10-03): the pairing in this table is by resource meaning; the guide does not publish a one-to-one legacy mapping table.


Common Patterns

FHIR Patient Resource Mapping Requirements

When to use: Incoming FHIR R4 Patient resources from an EHR.

How it works:

  • Patient.name maps to PersonName records whose ParentRecordId references the person's Account or Contact.
  • Patient.telecom maps to ContactPointPhone and ContactPointEmail records.
  • Patient.address maps to ContactPointAddress; multiple line values must be merged into one Street string, and type and text are not supported.
  • Patient.identifier maps to Identifier records.
  • Patient.gender and deceased details map to Contact.Gender and Contact.DeceasedDate, fields added by the org pref.

Middleware must create the Person Account first, then the child records. UNVERIFIED (2026-10-03): that the Patient Card and Timeline components read only the child objects is stated by earlier versions of this skill, not by the guide.

HL7 v2.3 Inbound Requirements

When to use: An EHR sends HL7 v2.3 ADT, ORM, ORU, MDM, VXU, or RDE messages.

How it works:

  1. List the message types and segments in scope.
  2. Map each segment field to the standard object field documented in the guide's HL7 v2.3 segment tables.
  3. Choose the translation layer that parses the message and calls the Salesforce APIs.
  4. Define error handling for unrecognized segments and out-of-range values.

Decision Guidance

SituationRecommended ApproachReason
New Health Cloud org, clinical data neededEnable the FHIR-Aligned Clinical Data Model org pref firstMost clinical objects do not exist without it
EHR sends FHIR R4 bundlesMiddleware translation still requiredThe guide requires middleware; complex types are flattened
Source has more than 15 codings per conceptPriority-based truncation in middlewareCodeSetBundle holds 15 references
Org holds legacy HC24__ EHR dataPlan migration to standard objectsNew development targets the FHIR R4-aligned model
HL7 v2.3 messages from EHRSegment-to-field mapping in a translation layerMappings are documented; parsing is not native
Portal users must see clinical dataFHIR R4 for Experience Cloud Sites permission setRequired for community users

Recommended Workflow

  1. Enable the org pref. Turn on the FHIR-Aligned Clinical Data Model (Setup, FHIR R4 Support Settings, or IndustriesSettings.enableClinicalDataModel), then confirm the objects exist with a SOQL query.
  2. Inventory source clinical data. FHIR resources or HL7 v2.3 messages, cardinality, required and optional fields, and coding systems (SNOMED CT, LOINC, ICD-10, RxNorm).
  3. Map resources to objects. Use the guide's FHIR v4.0 mapping tables. Flag every deviation: flattened types, the 15-coding cap, fields that are 1..1 in Salesforce but 0..1 in FHIR, and unsupported elements.
  4. Set coding-priority rules. For concepts with more than 15 codings, define which systems fill the 15 slots, in order.
  5. Specify middleware. Flattening, truncation, address-line merging, identifier mapping, HL7 v2.3 parsing, and error handling.
  6. Assess legacy objects. If HC24__ EHR data exists, scope the migration as a separate workstream and target standard objects for all new integrations.

Review Checklist

  • FHIR-Aligned Clinical Data Model org pref enabled or planned, with the objects it unlocks listed
  • Every in-scope FHIR resource or HL7 v2.3 message mapped to Salesforce objects
  • 15-coding limit handled with a documented priority policy
  • FHIR deviations documented (flattening, cardinality, unsupported elements)
  • Middleware requirements specified for every inbound source
  • Legacy HC24__ usage assessed and a migration decision recorded
  • FHIR R4 for Experience Cloud Sites permission set planned if portal users need clinical data

Salesforce-Specific Gotchas

The deep versions, with sources, live in references/gotchas.md.

#GotchaOne-line consequence
1Most clinical objects need the org pref; some do notIntegration tests fail on missing objects, or teams wrongly wait for objects that already exist
215 coding references per CodeableConceptCodings past 15 are lost unless the middleware prioritizes
3New customers cannot create records in packaged EHR objects with standard counterpartsLegacy-targeted integrations fail
4Some fields are 1..1 in Salesforce but 0..1 in FHIRConditions without a code are rejected
5HL7 v2.3 is a mapping, not a listenerA direct HL7 feed has nowhere to land without a translator
6Portal access needs a specific permission setCommunity users see nothing
7Address lines and names have their own shapesDemographics arrive truncated or in the wrong place

Output Artifacts

ArtifactDescription
FHIR-to-Salesforce field mappingField-level mapping for each in-scope resource
CodeableConcept constraint specificationAffected resources and the coding-priority policy
Middleware translation requirementsHL7 and FHIR transformation rules for the integration layer
Legacy EHR object migration assessmentCurrent HC24__ usage and migration scope
Org pref deploymentIndustries.settings with enableClinicalDataModel

Related Skills

  • data/health-cloud-data-model: Health Cloud object reference and data model overview
  • data/fhir-data-mapping: FHIR resource to Health Cloud object mapping reference
  • apex/fhir-integration-patterns: FHIR R4 integration code patterns and API usage
  • admin/care-coordination-requirements: referrals and care episodes that depend on the clinical data model

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Use this skill when writing test-first, behavior-driven acceptance criteria in Given/When/Then format for a Salesforce user story. Covers happy path, edge cases, negative paths, permission boundaries, and data-state preconditions so the AC block can drive UAT scripts and Apex test design downstream. Trigger keywords: given when then, gherkin, behavior driven AC, test first acceptance criteria, scenario outline, BDD acceptance criteria. NOT for the user-story format itself (use admin/user-story-writing-for-salesforce). NOT for UAT script writing (use admin/uat-test-case-design). NOT for Apex test method generation (use agents/test-class-generator). NOT for high-level UAT planning (use admin/uat-and-acceptance-criteria). More triggers: acceptance criteria record, ac_id, req_id on a criterion, artefact under test, negative case for a rule-type requirement, no-match fall-through criterion, oracle for a Then clause, test type apex flow manual, criteria linter, check_ac_format.py, --manifest-dir.

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

Task and Event objects: polymorphic WhatId/WhoId, Activity object model, ActivityHistory vs OpenActivity, activity timeline customization, bulk task creation, Einstein Activity Capture boundaries. NOT for turning on EAC or calendar sync — use admin/einstein-activity-capture-setup. NOT for Email-to-Case — use admin/case-management-setup. Covers ActivitiesSettings metadata, enableActivities, shared Task/Event custom fields and FLS, TaskStatus value sets, Shared Activities and TaskRelation/EventRelation, recurring and child activities, and partial-success bulk DML on Task.

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

Design Invocable Apex actions that return deterministic, agent-friendly errors instead of surfacing raw exceptions to the LLM. NOT for authoring the action itself — @InvocableMethod schema, labels, security context — use agentforce/custom-agent-actions-apex. NOT for the Apex tests that force each error branch — use agentforce/agent-action-unit-tests.

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

Use when designing how an Agentforce agent extracts structured input parameters (slots) from a user's natural-language utterance to invoke an action. Triggers: 'agent extract date from user', 'agent action argument extraction', 'agentforce slot filling', 'agent invocable input mapping', 'agent fails to fill required parameter'. NOT for action authoring (use agentforce/agent-actions) or for prompt-template variable binding (use agentforce/prompt-builder-templates).

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

Apex test patterns for @InvocableMethod agent actions: per-reason-code branch coverage, bulk safety, callout mocking, deterministic assertions. NOT for testing whether the agent routes to the right topic or answers well — use agentforce/agent-testing-and-evaluation. NOT for designing the error envelope the tests assert on — use agentforce/agent-action-error-handling.

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

Designing or reviewing Agentforce actions: Flow actions, Apex invocable actions, prompt-template actions, action naming, input and output contracts, confirmation requirements, and safe error behavior. Triggers: 'agent actions', 'build an agent that can look up an order', 'make the agent able to check order status', 'give the agent a capability', 'agent that can retrieve a record', 'flow action for agent', 'agent invocable action', 'action schema design'. NOT for writing the Apex class itself — use agentforce/custom-agent-actions-apex. NOT for the reason_code error envelope that stops an agent retry loop — use agentforce/agent-action-error-handling.

日本語の概要は準備中です。原文の説明を表示しています。

PranavNagrecha/AwesomeSalesforceSkills192026年10月4日 更新

PranavNagrecha のスキルをすべて見る

このスキルの問題を報告する