Ejemplo n.º 1
0
        /// - Tìm kiếm danh mục theo mã nhóm và tên/mã
        /// - Input:
        ///     maNhom: string - mã nhóm danh mục, lấy trong Constants.CodeSystem
        ///     keyword: string - từ khóa tìm kiếm
        ///  - Output:
        ///     dsDanhMuc: List<DanhMuc> - Danh sách các danh mục trong nhóm có tên/mã chứa keyword tìm kiếm

        public List <DanhMuc> SearchDanhMuc(string maNhom, string keyword)
        {
            string url = Constants.FHIR_URL + "/CodeSystem/$find-matches";

            var obj = new JsonObject();

            obj["resourceType"] = "Parameters";
            var parameters = new JsonArray();

            var systemParam = new JsonObject();

            systemParam["name"]     = "system";
            systemParam["valueUri"] = maNhom;
            parameters.Add(systemParam);

            var exactParam = new JsonObject();

            exactParam["name"]         = "exact";
            exactParam["valueBoolean"] = false;
            parameters.Add(exactParam);

            var propParam = new JsonObject();

            propParam["name"] = "property";

            var parts    = new JsonArray();
            var codePart = new JsonObject();

            codePart["name"]      = "code";
            codePart["valueCode"] = "slug";
            parts.Add(codePart);

            var valuePart = new JsonObject();

            valuePart["name"]        = "value";
            valuePart["valueString"] = keyword;
            parts.Add(valuePart);

            propParam["part"] = parts;
            parameters.Add(propParam);

            obj["parameter"] = parameters;

            var json = FhirClientUtils.post(url, obj.ToString());

            obj = JsonValue.Parse(json);

            foreach (var param in obj["parameter"].AsJsonArray)
            {
                if (param["name"] == "match")
                {
                    parts = param["part"].AsJsonArray;
                    return(parts.ToList().ConvertAll(x => DanhMuc.FromCoding(x["valueCoding"])));
                }
            }

            return(new List <DanhMuc>());
        }
Ejemplo n.º 2
0
        /// - Lấy danh mục theo mã nhóm và mã
        /// - Input:
        ///     + maNhom: string - mã nhóm danh mục, lấy trong Constants.CodeSystem
        ///     + ma: string - mã của danh mục trong nhóm
        ///  - Output:
        ///     + danhMuc: DanhMuc - Danh mục nếu tìm thấy, null nếu không tìm thấy

        public DanhMuc GetDanhMuc(string maNhom, string ma)
        {
            var param = new Dictionary <string, string>()
            {
                { "system", maNhom },
                { "code", ma }
            };
            string url  = Constants.FHIR_URL + "/CodeSystem/$lookup";
            var    json = FhirClientUtils.get(url, param);

            if (json != null)
            {
                var obj = JsonValue.Parse(json);
                return(DanhMuc.FromParams(maNhom, obj["parameter"].AsJsonArray));
            }
            return(null);
        }
Ejemplo n.º 3
0
        /// - Lấy toàn bộ danh mục trong một nhóm
        /// - Input:
        ///     + maNhom: string - mã nhóm danh mục, lấy trong Constants.CodeSystem
        ///
        ///  - Output:
        ///     + dsDanhMuc: List<DanhMuc> - Toàn bộ Danh Mục trong nhóm
        public List <DanhMuc> GetDanhMucByGroup(string maNhom)
        {
            string         codeSytemId = GetCodeSystemId(maNhom);
            List <DanhMuc> dsDanhMuc   = new List <DanhMuc>();

            if (codeSytemId != null)
            {
                string url      = Constants.FHIR_URL + "/CodeSystem/" + codeSytemId;
                var    json     = FhirClientUtils.get(url);
                var    obj      = JsonValue.Parse(json);
                var    concepts = obj["concept"].AsJsonArray;
                foreach (var concept in concepts)
                {
                    dsDanhMuc.Add(DanhMuc.FromConcept(maNhom, concept));
                }
            }
            return(dsDanhMuc);
        }
Ejemplo n.º 4
0
        private string GetCodeSystemId(string codeSystemUrl)
        {
            var param = new Dictionary <string, string>()
            {
                { "url", codeSystemUrl },
                { "status", "active" }
            };
            string url  = Constants.FHIR_URL + "/CodeSystem";
            string json = FhirClientUtils.get(url, param);

            if (json != null)
            {
                var obj   = JsonValue.Parse(json);
                var entry = obj["entry"].AsJsonArray;
                if (entry.Count > 0)
                {
                    return(entry[0]["resource"]["id"].AsString);
                }
            }

            return(null);
        }