Is using "urn:ietf:bcp:47" as system is mandatory in Patient resource type, communication language?

Hi, I am working on a Bundle containing Patient resource type and I am using linuxForHealth parser to parse the JSON. when I try to parse the JSON it gives the below error.

Found error parsing request JSON, Element ‘language’: does not contain a Coding element with a valid system and code combination for value set: ‘<status value="active"/> <experimental value="false"/> <date value="2022-05-28T12:47:40+10:00"/> <publisher value="HL7 International - FHIR-Infrastructure"/> <contact> <telecom> <system value="url"/> <value value=""/> </telecom> </contact> <description value="This value set includes all possible codes from BCP-47 ("/> <compose> <include> <system value="urn:ietf:bcp:47"/> </include> </compose> </ValueSet>

below is the snippet of input communication.language.coding Json.
“system”: “language/system as a url”,
“code” : “ENG”,
“display”: “English”,
“userSelected”: true

I am not using the AllLanguage “urn:ietf:bcp:47”. If I used “urn:ietf:bcp:47” then it will not throw error.
Is using the system as “urn:ietf:bcp:47” is mandatory? and we can not use any other system ?

In fhir (Patient - FHIR v4.3.0) it tells ((preferred) but limited to [AllLanguages]), can someone please help me to understand this ?

Thanks in advance.

There are two bindings for the communication.language element. The first is a ‘preferred’ binding to an enumerated set of common language codes that is useful for drop-downs, etc. The second is a ‘required’ ‘max’ binding to ietf:bcp:47. This binding is to a value set that includes all of the potential language codes - every code combined with every country and possible modifier. An essentially infinite list of codes, but still a defined set of codes bound to a specific grammar.

If you’re going to send a language, you must send at least one coding from that approved set. You can send additional codes from whatever other code systems you like within that one CodeableConcept. (As a side note, if you’re sending a code, you should always send the .system value too. A code with no system can’t be computed with.)

Thank you for the reply.
When you say " If you’re going to send a language, you must send at least one coding from that approved set." The approved set is the AllLanguage “urn:ietf:bcp:47” and it is mandatory.

Is my understanding correct ?

Yes. You must send at least one coding from urn:ietf:bcp:47.

Thank you.
A follow up question, Is this applies for US core Implementation Guide STU3 Release 3.1.1 (USCore) which is based on FHIR R4? The binding for Patient.communication.language is as LanguageCodesWithLanguageAndOptionallyARegionModifier. when we check inside this under Logical Definition Include code from “urn:ietf:bcp:47”

It applies to FHIR R4, regardless of implementation guide. (And to other FHIR versions too.)