|
@@ -0,0 +1,1500 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import (
|
|
|
+ log "github.com/donnie4w/go-logger/logger"
|
|
|
+ "go.mongodb.org/mongo-driver/bson"
|
|
|
+ qu "qfw/util"
|
|
|
+ "regexp"
|
|
|
+ "strings"
|
|
|
+ "unicode/utf8"
|
|
|
+)
|
|
|
+
|
|
|
+var (
|
|
|
+ codeRelation = map[string]string{
|
|
|
+ "06": "医用成像器械",
|
|
|
+ "01": "有源手术器械",
|
|
|
+ "02": "无源手术器械",
|
|
|
+ "14": "注输、护理和防护器械",
|
|
|
+ "16": "眼科器械",
|
|
|
+ "03": "神经和心血管手术器械",
|
|
|
+ "12": "有源植入器械",
|
|
|
+ "40": "体外诊断试剂",
|
|
|
+ "13": "无源植入器械",
|
|
|
+ "18": "妇产科、辅助生殖和避孕器械",
|
|
|
+ "17": "口腔科器械",
|
|
|
+ "22": "临床检验器械",
|
|
|
+ "07": "医用诊察和监护器械",
|
|
|
+ "04": "骨科手术器械",
|
|
|
+ "20": "中医器械",
|
|
|
+ "09": "物理治疗器械",
|
|
|
+ "08": "呼吸、麻醉和急救器械",
|
|
|
+ "19": "医用康复器械",
|
|
|
+ "21": "医用软件",
|
|
|
+ "10": "输血、透析和体外循环器械",
|
|
|
+ "11": "医疗器械消毒灭菌器械",
|
|
|
+ "15": "患者承载器械",
|
|
|
+ "05": "放射治疗器械",
|
|
|
+ "57": "医疗器械消毒灭菌器械",
|
|
|
+ "68": "体外诊断试剂",
|
|
|
+ "27": "中医器械",
|
|
|
+ "26": "物理治疗器械",
|
|
|
+ "46": "骨科手术器械",
|
|
|
+ }
|
|
|
+ rangeRelation = map[string]string{
|
|
|
+ "6801": "无源手术器械",
|
|
|
+ "6831": "X射线附属及辅助设备",
|
|
|
+ "6812": "妇产科、辅助生殖和避孕器械",
|
|
|
+ "6813": "妇产科手术器械",
|
|
|
+ "6810": "骨科手术器械",
|
|
|
+ "6824": "光治疗设备",
|
|
|
+ "6854": "呼吸、麻醉和急救器械",
|
|
|
+ "6856": "呼吸、麻醉和急救器械",
|
|
|
+ "6806": "口腔科器械",
|
|
|
+ "6855": "口腔科器械",
|
|
|
+ "6863": "口腔科器械",
|
|
|
+ "6840": "临床检验器械",
|
|
|
+ "6841": "临床检验器械",
|
|
|
+ "6803": "神经和心血管手术器械",
|
|
|
+ "6807": "神经和心血管手术器械",
|
|
|
+ "6877": "神经和心血管手术器械-心血管介入器械",
|
|
|
+ "6845": "输血、透析和体外循环器械",
|
|
|
+ "6805": "无源手术器械",
|
|
|
+ "6809": "无源手术器械",
|
|
|
+ "6808": "无源手术器械",
|
|
|
+ "6816": "无源手术器械",
|
|
|
+ "6846": "无源植入器械",
|
|
|
+ "6826": "物理治疗器械",
|
|
|
+ "6804": "眼科器械",
|
|
|
+ "6857": "医疗器械消毒灭菌器械",
|
|
|
+ "6822": "医用成像器械",
|
|
|
+ "6828": "医用成像器械",
|
|
|
+ "6833": "医用成像器械",
|
|
|
+ "6870": "医用软件",
|
|
|
+ "6834": "医用射线防护设备",
|
|
|
+ "6820": "医用诊察和监护器械",
|
|
|
+ "6821": "医用诊察和监护器械",
|
|
|
+ "6827": "中医器械",
|
|
|
+ "6815": "注射、穿刺器械",
|
|
|
+ "6864": "注输、护理和防护器械",
|
|
|
+ }
|
|
|
+ productTemp = map[string]string{}
|
|
|
+ companyTemp = map[string]string{}
|
|
|
+ YlqxCodeName = map[string]string{}
|
|
|
+ YlqxNameCode = map[string]string{}
|
|
|
+
|
|
|
+ ScRangeReg1 = regexp.MustCompile("(\\d{2}|\\d{4})-(\\d{2}|\\d{1})([\\s -::]+)?([\u4e00-\u9fa5()、()/\\s ]+)")
|
|
|
+ ScRangeReg2 = regexp.MustCompile("\\d{2}([\\s -::]+)?([\u4e00-\u9fa5()、()/\\s ]+)")
|
|
|
+ ScRangeClean1 = regexp.MustCompile("[\\s ]+")
|
|
|
+ ScRangeClean2 = regexp.MustCompile("(生产范围).*")
|
|
|
+ SpecRangeReg = regexp.MustCompile("(检测试剂|试剂盒|抗体试剂|保存试剂|提取试剂)")
|
|
|
+)
|
|
|
+
|
|
|
+var cleanPN0 = regexp.MustCompile("[ \\s]+")
|
|
|
+var cleanPN1 = regexp.MustCompile("[\u30A0-\u30FF]+")
|
|
|
+var cleanPN2 = regexp.MustCompile("([A-Za-z]+)$")
|
|
|
+var cleanPN3 = regexp.MustCompile("[()()]+")
|
|
|
+var cleanPN4 = regexp.MustCompile("^([0-9]+)")
|
|
|
+
|
|
|
+//清洗产品名称
|
|
|
+func cleanProductName(product_name string) string {
|
|
|
+ product_name = cleanPN0.ReplaceAllString(product_name, "")
|
|
|
+ product_name = cleanPN1.ReplaceAllString(product_name, "")
|
|
|
+ product_name = cleanPN2.ReplaceAllString(product_name, "")
|
|
|
+ product_name = cleanParenthesesName(product_name)
|
|
|
+ product_name = cleanPN4.ReplaceAllString(product_name, "")
|
|
|
+ return product_name
|
|
|
+}
|
|
|
+func cleanParenthesesName(name string) string {
|
|
|
+ indexArr := cleanPN3.FindAllStringIndex(name, -1)
|
|
|
+ strArr, start, end := []string{}, 0, 0
|
|
|
+ for k, v := range indexArr {
|
|
|
+ if k%2 == 0 {
|
|
|
+ start, end = 0, 0
|
|
|
+ start = v[0]
|
|
|
+ } else {
|
|
|
+ end = v[1]
|
|
|
+ str := name[start:end]
|
|
|
+ strArr = append(strArr, str)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for _, v := range strArr {
|
|
|
+ name = strings.ReplaceAll(name, v, "")
|
|
|
+ }
|
|
|
+ return name
|
|
|
+}
|
|
|
+
|
|
|
+//加载医疗器械代码
|
|
|
+func loadYlqxInfo() {
|
|
|
+ ylqxs := *MysqlMedicalTool.Find("code_productclass", nil, "", "", -1, -1)
|
|
|
+ for _, v := range ylqxs {
|
|
|
+ name := qu.ObjToString(v["name"])
|
|
|
+ code := qu.ObjToString(v["code"])
|
|
|
+ if name != "" && code != "" {
|
|
|
+ YlqxCodeName[code] = name
|
|
|
+ YlqxNameCode[name] = code
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.Debug("产品数量~", len(YlqxCodeName))
|
|
|
+}
|
|
|
+func loadFifthInfo() map[string]string {
|
|
|
+ info := map[string]string{}
|
|
|
+ arr1 := []string{
|
|
|
+ "手术刀、疣体剥离刀、皮屑刮刀",
|
|
|
+ "手术刀片",
|
|
|
+ "手术刀柄、刀片夹持器",
|
|
|
+ "备皮刀",
|
|
|
+ "医用剪、基础外科用剪、组织剪、手术剪、精细剪、精细手术剪、不锈钢手术剪",
|
|
|
+ "拆线剪、纱布绷带剪",
|
|
|
+ "止血钳、蚊式止血钳、血管钳、微血管止血钳",
|
|
|
+ "组织钳、小切口组织钳、微针钳、异物钳、子弹钳、淋巴结钳、取样钳、分离结扎钳、息肉钳",
|
|
|
+ "器械钳、持针钳、持针器、微血管持针钳、硬质合金镶片持针钳、小切口持针钳、皮管钳、置放钳、夹持钳、夹持器、结扎钳、帕巾钳、海绵钳",
|
|
|
+ "施夹钳(不带夹)、施夹器",
|
|
|
+ "拆钉钳、拆钉器、拆针器",
|
|
|
+ "组织镊、医用镊",
|
|
|
+ "探针、外科手术探针",
|
|
|
+ "刺探针",
|
|
|
+ "拔松针",
|
|
|
+ "钩针",
|
|
|
+ "动脉瘤针",
|
|
|
+ "医用拉钩、基础外科用钩、拉钩、创口钩、扁平拉钩、皮肤拉钩、手术拉钩、双头拉钩、组织拉钩",
|
|
|
+ "外科牵开器、钳式牵开器",
|
|
|
+ "刮匙、皮肤刮匙",
|
|
|
+ "皮肤组织钻孔器",
|
|
|
+ "剥离器、医用剥离器、软组织剥离器",
|
|
|
+ "吸引管、外科吸引管、吸引头、医用吸引头",
|
|
|
+ "显微刀、显微喉刀",
|
|
|
+ "显微剪、显微组织剪、显微枪形手术剪、显微喉剪",
|
|
|
+ "显微钳、显微喉钳、微持针钳",
|
|
|
+ "显微镊、显微组织镊、显微持针镊",
|
|
|
+ "显微止血夹",
|
|
|
+ "显微针、显微耳针、显微喉针",
|
|
|
+ "显微平头冲洗针",
|
|
|
+ "显微钩、显微耳钩、显微喉钩",
|
|
|
+ "显微冲洗吸引管、显微喉用冲洗吸引管",
|
|
|
+ "显微剥离器、显微喉剥离器",
|
|
|
+ "动脉瘤夹钳、银夹钳、头皮夹钳、U型夹钳",
|
|
|
+ "脑乳突牵开器、软轴牵开器、后颅凹牵开器",
|
|
|
+ "颈椎牵开器",
|
|
|
+ "颅骨牵引器",
|
|
|
+ "手摇颅骨钻、颅骨钻",
|
|
|
+ "颅骨线锯条",
|
|
|
+ "线锯导引器",
|
|
|
+ "脑压板",
|
|
|
+ "手术用头架、手术头架",
|
|
|
+ "眼内膜刀、扩口刀、眼科手术刀、显微眼用刀",
|
|
|
+ "眼科手术刀片",
|
|
|
+ "眼科手术刀柄",
|
|
|
+ "眼用剪、角膜剪、虹膜剪、巩膜剪、结膜剪、囊膜剪、膜状内障剪、眼内剪、小梁剪、显微眼用手术剪、显微眼用剪、显微虹膜剪",
|
|
|
+ "眼科镊、虹膜镊、视网膜镊、角膜移植镊、膜瓣镊、医用睫毛镊、眼内异物镊、睑板腺囊肿镊、剥膜镊、晶体植入镊、晶体折叠镊、碎核镊、抱核镊、撕囊镊、辅助夹持镊、翻眼镊、角膜固定镊、巩膜塞夹持镊、显微结膜镊、显微眼内鳄鱼镊、显微眼内非对称性视网膜镊、显微眼内镐头镊、显微眼内内界膜镊、显微眼内钳式镊、显微眼内视网膜镊、显微眼用镊、显微虹膜镊",
|
|
|
+ "系线镊、缝线结扎镊、弹簧镊、眼用结扎镊",
|
|
|
+ "眼科钳、眼用止血钳、显微眼用钳",
|
|
|
+ "小梁切开器、巩膜咬切器",
|
|
|
+ "眼用持针钳、眼用显微持针钳",
|
|
|
+ "泪囊拉钩、斜视钩、眼睑拉钩、眼内膜钩、视网膜钩、虹膜拉钩、角膜上皮扒钩、角膜线钩、角膜异物钩、晶体定位钩、眼科手术辅助用钩、显微眼用钩具",
|
|
|
+ "眼用破囊针、眼用注液针、眼用放液针、泪道探针、角膜异物针、冲洗针",
|
|
|
+ "眼用笛针",
|
|
|
+ "角膜上皮环锯、角膜环钻",
|
|
|
+ "注吸器、注吸冲洗器、冲洗器",
|
|
|
+ "冲洗器手柄、注吸器手柄",
|
|
|
+ "晶体线环",
|
|
|
+ "泪点扩张器、泪小点扩张器、显微眼用泪道扩张器",
|
|
|
+ "开睑器",
|
|
|
+ "泪囊牵开器",
|
|
|
+ "眼球固定器",
|
|
|
+ "眼用测量规、眼用测量器、眼用测量尺、眼窝测量球",
|
|
|
+ "眼用刮匙",
|
|
|
+ "双头片铲、眼内膜铲",
|
|
|
+ "角膜异物铲",
|
|
|
+ "碎核垫板、单头碎核垫板",
|
|
|
+ "巩膜剥离子、眼用巩膜剥离器",
|
|
|
+ "扁桃体刀、扁桃体切除器、耳鼓膜刀、耳道皮瓣刀、盒式切除刀、鼻粘膜刀、鼻中隔旋转刀",
|
|
|
+ "鼻骨凿、乳突骨凿、耳用骨凿、鼻中隔凿",
|
|
|
+ "耳息肉剪、镫骨足弓剪、耳用槌骨咬骨剪、耳剪、中耳剪、槌骨剪",
|
|
|
+ "鼻剪、鼻组织剪、鼻粘膜剪、鼻中隔骨剪",
|
|
|
+ "喉剪、甲状腺剪、扁桃体剪",
|
|
|
+ "耳钳、中耳息肉钳、耳异物钳、耵聍钳",
|
|
|
+ "鼻组织钳、鼻筛窦钳、鼻咬切钳、鼻咽活体取样钳、鼻粘膜钳、鼻(窦)息肉钳、鼻腔填塞钳、鼻骨复位钳、上颌窦咬骨钳、蝶窦咬骨钳、鼻中隔咬骨钳、上颌窦止血钳",
|
|
|
+ "鼻息肉圈断器",
|
|
|
+ "喉用钳、间接喉钳、喉分离钳、喉息肉钳、喉取样钳、异物喉钳、粘膜抓钳、扁桃体用钳",
|
|
|
+ "耳用镊、耳用膝状镊、鼻用镊",
|
|
|
+ "耳钩、耵聍钩、甲状腺拉钩、扁桃体拉钩、鼻腔拉钩",
|
|
|
+ "上颌窦探针、耳用探针、鼻穿刺针",
|
|
|
+ "内耳张开器",
|
|
|
+ "乳突牵开器、鼻腔撑开器、鼻窥器",
|
|
|
+ "五官科吸引管、鼻腔吸引管、扁桃体吸引管、鼻窦冲吸器",
|
|
|
+ "鼻剥离器、鼻骨膜剥离器、鼻中隔剥离器",
|
|
|
+ "鼻骨锉",
|
|
|
+ "鼻骨锤",
|
|
|
+ "牙龈刀、软组织环切刀、牙用刀、牙用手术刀、拔牙刀",
|
|
|
+ "牙骨凿、牙釉凿、阻生牙骨凿",
|
|
|
+ "牙科剪、牙龈剪",
|
|
|
+ "咬骨钳、牙槽咬骨钳、拔牙钳、舌钳、切断钳、切断牙钳、正颌专用钳",
|
|
|
+ "正畸钳、正畸切断钳、正畸弯制钳、粘合锁槽去除钳、正畸带环安置夹钳、磨牙带环就位器",
|
|
|
+ "牙用镊、牙科镊",
|
|
|
+ "成形片夹",
|
|
|
+ "颌部组织拉钩、口角拉钩",
|
|
|
+ "拔髓针",
|
|
|
+ "牙周袋探针、牙用探针、牙探针",
|
|
|
+ "根管扩大针、根管锉",
|
|
|
+ "牙周锉、牙骨锉、牙用锉",
|
|
|
+ "扭力扳手、螺丝起",
|
|
|
+ "上颌窦提升器、置骨器、牙科种植定位器",
|
|
|
+ "牙种植导向模板、种植用手术导板",
|
|
|
+ "橡皮障",
|
|
|
+ "橡皮障打孔器",
|
|
|
+ "橡皮障夹",
|
|
|
+ "橡皮障夹钳",
|
|
|
+ "橡皮障支架",
|
|
|
+ "牙用尺、牙用测力计",
|
|
|
+ "牙挺、牙根尖挺、丁字形牙挺",
|
|
|
+ "牙用充填器、银汞合金充填器、水门汀充填器、牙胶充填器、根管充填器、牙科树脂充填器、排龈线填塞器、粘固粉充填器",
|
|
|
+ "牙用输送器、银汞合金输送器、汞合金输送器、树脂输送器、硅橡胶输送器",
|
|
|
+ "牙用分离器、牙龈分离器",
|
|
|
+ "口镜",
|
|
|
+ "颌外牵引装置、唇颊牵开器、上颌窦牵开器",
|
|
|
+ "口腔冲洗器、牙龈冲洗器",
|
|
|
+ "口腔开口器、丁字式开口器、双头开口器",
|
|
|
+ "洁治器、刮治器",
|
|
|
+ "牙刮匙",
|
|
|
+ "研光器",
|
|
|
+ "剔挖器、挖匙",
|
|
|
+ "去冠器",
|
|
|
+ "牙骨锤",
|
|
|
+ "牙正畸结扎器",
|
|
|
+ "胸骨刀",
|
|
|
+ "心脏手术剪、胸骨剪、肋骨剪",
|
|
|
+ "心房持针钳、结扎钳、胸腔组织钳、三角肺叶钳、双关节肋骨咬骨钳、咬骨钳、直视大型肺叶钳",
|
|
|
+ "胸腔止血钳",
|
|
|
+ "凹凸齿止血夹",
|
|
|
+ "胸腔镊、胸腔组织镊、肺组织镊",
|
|
|
+ "心房拉钩、心室拉钩、二尖瓣膜拉钩",
|
|
|
+ "双头剥离匙",
|
|
|
+ "肋骨骨膜剥离器、内膜剥离器",
|
|
|
+ "肋骨合拢器",
|
|
|
+ "腹部用直视直剪、腹部用直视弯剪、双向剪、组织剪、腹部用双动直剪、腹部用双动弯剪、腹部用直剪、腹部用钩剪",
|
|
|
+ "分离钳、三叶钳、三叶扇形钳、五叶扇形钳、五叶钳、无齿钳、牵引钳、腹膜钳、V形钳、O形钳、器官固定钳、剥离钳、扳克钳、撑开钳、大型分离钳、胆囊钳、胆管钳、钝头钳、中空竖齿钳、中空横齿钳、胃钳、芯轴钳、脾蒂钳、抵钉座对合钳、活检钳、取石钳、造影钳、抓钳、阑尾肠钳",
|
|
|
+ "钛夹钳施、夹钳(不带夹)",
|
|
|
+ "荷包钳、取物钳、钉座夹持钳、持针钳、缝合钳",
|
|
|
+ "大腹钩、前列腺拉钩、胆道拉钩、腹部拉钩、腹壁拉钩、阑尾拉钩、深部拉钩、悬吊拉钩、活动拉钩、S状拉钩、L状拉钩、导光拉钩、腹部外科用拉钩、小切口拉钩、万向拉钩、直角拉钩",
|
|
|
+ "气腹针",
|
|
|
+ "腹部手术牵开器、下腹部牵开器、腹部手术单侧牵开器、可调式腹壁牵开器、框架式牵开器、环形牵开器、和式牵开器、腹壁牵开器、腹壁固定牵开器",
|
|
|
+ "胆石匙 、胆囊刮匙",
|
|
|
+ "荷包成型器",
|
|
|
+ "腹腔吸引管",
|
|
|
+ "压肠板",
|
|
|
+ "拉钩装置器",
|
|
|
+ "胆道探条",
|
|
|
+ "前列腺剪",
|
|
|
+ "肠剪",
|
|
|
+ "爪钳、痔核钳、抓钳肠钳",
|
|
|
+ "膀胱肿瘤钳、输尿管夹持钳、膀胱钳、后尿道钳、膀胱颈钳、前列腺组织钳",
|
|
|
+ "取石钳、肾石钳、膀胱取石钳、碎石钳",
|
|
|
+ "痔漏探针、导引针、肛门探针",
|
|
|
+ "前列腺拉钩、膀胱拉钩、肾盂拉钩、肾窦拉钩",
|
|
|
+ "膀胱前列腺牵开器、肛门牵开器、尿道扩张器 、扩肛器",
|
|
|
+ "肛门镜、塑制肛门镜、不锈钢肛门镜、窥肛器",
|
|
|
+ "阴茎夹",
|
|
|
+ "全玻璃灌肠器",
|
|
|
+ "医用排便清肠器",
|
|
|
+ "截断刀、截骨刀、胫骨切刀、胫骨切割器、半月板刀、骨刀、削切刀",
|
|
|
+ "髓腔铰刀、加压螺纹钉铰刀、骨铰刀",
|
|
|
+ "髓腔扩大器、柔性扩髓器",
|
|
|
+ "石膏刀",
|
|
|
+ "骨用丝锥、丝攻",
|
|
|
+ "骨锥、开口锥",
|
|
|
+ "骨科用螺丝刀",
|
|
|
+ "导钻",
|
|
|
+ "骨科钻头、铰孔钻、骨钻",
|
|
|
+ "手摇颅骨钻",
|
|
|
+ "手枪式手摇骨钻、手摇式骨钻、弓形钻",
|
|
|
+ "埋头钻",
|
|
|
+ "髋关节成型凹凸钻",
|
|
|
+ "髓腔扩大钻",
|
|
|
+ "骨剪、双关节咬骨剪、双关节棘突骨剪、膝关节韧带手术剪、咬骨剪",
|
|
|
+ "钢丝剪、钢针剪、钛网剪、钛笼剪",
|
|
|
+ "石膏剪",
|
|
|
+ "咬骨钳、腐骨钳、膝关节息肉钳",
|
|
|
+ "骨科用撑开钳、椎体撑开钳、骨科撑开器、骨盆撑开器、股骨撑开器、颈椎撑开器、椎体撑开器、脊柱撑开器",
|
|
|
+ "压缩钳",
|
|
|
+ "持骨钳、髌骨钳、骨科复位钳、骨盆复位钳、三爪骨复位钳、持钉钳、持板钳、持棒钳、持钩钳、螺杆夹持钳、持针钳",
|
|
|
+ "骨克丝钳、钢丝钳、钢针钳、剪切钳、断棒钳、钢丝结扎钳、钢板弯曲钳、弯棒钳、折弯钳",
|
|
|
+ "热弯曲钳",
|
|
|
+ "转棒钳、取出钳",
|
|
|
+ "弓锯、骨锯、指骨锯、胸骨锯",
|
|
|
+ "线锯",
|
|
|
+ "锯片",
|
|
|
+ "线锯条",
|
|
|
+ "石膏锯",
|
|
|
+ "骨凿、小圆刮凿、丁字凿、弧形凿、髋关节成型凿、肘关节肱骨成型骨凿、座导凿、平骨凿、圆骨凿、脱臼凿、峨眉凿",
|
|
|
+ "骨锉、髓腔锉、椎管锉、隧道锉、髋臼锉",
|
|
|
+ "梯形铲",
|
|
|
+ "(单侧)椎板拉钩、半月板钩、下肢截断拉钩、颈椎拉钩、骨拉钩、髋关节拉钩、肩胛骨拉钩、膝关节拉钩",
|
|
|
+ "神经根拉钩",
|
|
|
+ "骨用牵开器、手摇式牵开器、自动牵开器、多(双)向牵开器、可调式牵开器、微创牵开器、胫骨牵开器、关节微创牵开器、后颅牵开器、坐骨神经牵开器、脊柱牵开器、椎板牵开器、颈椎椎体牵开器、颈椎关节牵开器、颈椎组织牵开器、颈椎微创牵开器、环形椎骨牵开器、不对称牵开器、髋关节牵开器、腰椎微创牵开器、手摇式颈椎牵开器",
|
|
|
+ "骨钩",
|
|
|
+ "骨牵引针、加压螺纹钉导引针、骨导引针、骨定位针、固定针",
|
|
|
+ "骨探针",
|
|
|
+ "穿孔针",
|
|
|
+ "钩针",
|
|
|
+ "骨刮匙",
|
|
|
+ "骨膜剥离器(子)、可变神经剥离器(子)、神经剥离器(子)",
|
|
|
+ "电动石膏剪、电动石膏锯、电动石膏切割器",
|
|
|
+ "直径尺、医用尺、角度尺、测深器、骨测量器、试模、填充块、量规",
|
|
|
+ "钢板塑型片",
|
|
|
+ "膝关节伸直间隙评估垫片",
|
|
|
+ "线锯导引器",
|
|
|
+ "骨科定位片、骨科钻孔瞄准器",
|
|
|
+ "钢丝穿引器、钢丝穿孔器",
|
|
|
+ "石膏撑开器",
|
|
|
+ "打入器、打拔器、拔出器、取钉器、螺钉取出器、断钉取出器、髂骨取出器、螺钉打滑取出器、扳手、起子",
|
|
|
+ "持针镊、持钉镊、持钉夹、夹持器",
|
|
|
+ "骨锤、骨撬、撬棒、骨锨",
|
|
|
+ "开路器、打孔器、扩孔器",
|
|
|
+ "植骨漏斗、双室漏斗、弯型漏斗、植骨器、骨移植搅拌器",
|
|
|
+ "骨科吸引器",
|
|
|
+ "骨质活检提取器",
|
|
|
+ "膝关节固定器、肩关节固定器、踝关节固定器、髌骨加压固定器、颈椎固定器、腰椎固定器、足托固定器、臂外展固定器、膝关节加压固定器、骨盆固定器、骨科保护支具、肢体固定器、可调式固定支具、医用外固定支具",
|
|
|
+ "骨把持器、三爪骨把持器、骨折固定夹",
|
|
|
+ "骨折固定夹板、医用高分子夹板、肋骨固定板、医用固定带、胸骨固定板、植骨夹板、医用外固定夹板",
|
|
|
+ "石膏绷带(粉状型)、石膏绷带(粘胶型)",
|
|
|
+ "锁针加压器",
|
|
|
+ "护套、快装手柄",
|
|
|
+ "下肢骨折整复器",
|
|
|
+ "钢板弯曲扳手、钢板弯曲器",
|
|
|
+ "弯棒器",
|
|
|
+ "扭断器、剪断器、剪棒器、断棒器、钢针切断器",
|
|
|
+ "椎弓根钉尾部切断器",
|
|
|
+ "负气压式骨折固定保护气垫",
|
|
|
+ "股骨髓腔对线手柄套",
|
|
|
+ "股骨髓腔探棒",
|
|
|
+ "骨科冲头",
|
|
|
+ "导引袖套、环状套扎器",
|
|
|
+ "碎胎刀",
|
|
|
+ "妇产科用剪、剖腹产剪、会阴剪、阴道环切剪、宫腔手术剪、子宫剪",
|
|
|
+ "脐带剪",
|
|
|
+ "产钳、剖腹产切口钳、妇科组织钳、子宫颈活体取样钳、子宫夹持钳、子宫颈钳、宫腔异物钳、卵巢钳、举宫钳、宫腔活检钳、子宫内取物钳、妇科分离钳",
|
|
|
+ "产钳、头皮钳",
|
|
|
+ "环形输卵管镊",
|
|
|
+ "子宫拉钩、阴道拉钩",
|
|
|
+ "子宫探针",
|
|
|
+ "腹水穿刺针",
|
|
|
+ "侧开式阴道扩张器、双翼阴道扩张器、双翼阴道检查扩张器、双翼阴道手术扩张器",
|
|
|
+ "子宫颈扩张器、阴道牵开器、会阴牵开器",
|
|
|
+ "输卵管通液器",
|
|
|
+ "骨盆测量计",
|
|
|
+ "子宫内膜刮吸管",
|
|
|
+ "子宫拨棒",
|
|
|
+ "阴道压板",
|
|
|
+ "宫颈压板",
|
|
|
+ "刮宫片、宫内刮片",
|
|
|
+ "肌瘤剥离器",
|
|
|
+ "举宫器、可冲洗举宫器、李式举宫器、杯式举宫器",
|
|
|
+ "宫内节育器取出钳、宫内节育器取出钩、宫内节育器放置叉",
|
|
|
+ "输精管分离钳、输精管皮外固定钳",
|
|
|
+ "输卵管提取板",
|
|
|
+ "子宫刮匙、子宫刮",
|
|
|
+ "宫颈刮片",
|
|
|
+ "放气针、输液用放气针",
|
|
|
+ "无针注射推进器、弹簧驱动式无针注射推进器",
|
|
|
+ "辊轴取皮刀、鼻手术刀",
|
|
|
+ "鼻骨凿、指骨凿",
|
|
|
+ "颌骨夹持钳、肌腱夹持钳",
|
|
|
+ "整形镊、皮肤镊、眼睑镊",
|
|
|
+ "唇夹",
|
|
|
+ "鼻骨整形锯锉",
|
|
|
+ "整形分离器、整形肌腱分离器、整形肌腱剥离器",
|
|
|
+ "整形拉钩、光导整形拉钩",
|
|
|
+ "鼓式取皮机、烧伤植皮机",
|
|
|
+ "鼻导引器",
|
|
|
+ "腋臭匙",
|
|
|
+ "鼻假体导引器",
|
|
|
+ "压舌板",
|
|
|
+ "打诊锤、脑打诊锤、叩诊锤",
|
|
|
+ "额戴反光镜",
|
|
|
+ "单用听诊器、二用听诊器、三用听诊器、胎音听诊器",
|
|
|
+ "视力表灯、视力表灯箱",
|
|
|
+ "标准对数视力表、综合视力表、点状视力表",
|
|
|
+ "遮眼板",
|
|
|
+ "幼儿视锐度(视力)检测卡、儿童图形视力卡、婴幼儿选择性注视检测卡",
|
|
|
+ "反光灯、医用检查灯、聚光灯",
|
|
|
+ "医用头灯、额戴式照明灯、头灯",
|
|
|
+ "手术放大镜、医用手术放大镜、双目手术放大镜、头戴式放大镜、医用放大镜",
|
|
|
+ "超声耦合剂、医用超声耦合剂",
|
|
|
+ "火罐、火罐瓶",
|
|
|
+ "真空拔罐器、负压罐、负压拔罐器",
|
|
|
+ "刮痧板、刮痧器、刮痧砭板",
|
|
|
+ "医用X射线胶片、医用X光胶片",
|
|
|
+ "医用红外激光胶片、医用激光胶片、医用干式胶片",
|
|
|
+ "医用中速增感屏、医用高速增感屏、极光增感屏、增感纸、牙用增感屏、钨酸钙中速医用增感屏",
|
|
|
+ "医用透视荧光屏、医用诊断X射线透视荧光屏",
|
|
|
+ "影像板、影像IP板",
|
|
|
+ "手动摄影平床、手动X射线摄影平床",
|
|
|
+ "吊架、立柱/导轨、立式摄片架",
|
|
|
+ "硬拷贝照相机、医用图像打印机、干式激光成像仪",
|
|
|
+ "暗盒、成像板暗盒、暗匣、X射线摄影暗匣",
|
|
|
+ "X射线胶片显影液、X射线胶片定影液、X射线胶片显影粉、X射线胶片定影粉",
|
|
|
+ "X射线胶片观片灯、X射线胶片观片仪、X光片观片灯、X射线胶片观片灯箱",
|
|
|
+ "医用X射线自动洗片机、医用牙科X光胶片全自动冲洗机、全自动洗片机",
|
|
|
+ "放疗用患者体位固定袋、人体定位袋、定位膜、人体定位垫(用于放疗时)",
|
|
|
+ "人体定位袋、人体定位垫(用于诊断时)",
|
|
|
+ "医用射线防护面罩、医用射线防护手套、医用射线防护眼镜、防辐射衣、防辐射帽、防辐射裙、防辐射围领、医用射线防护帘、医用射线性腺防护帘、防辐射背心、医用射线防护玻璃板",
|
|
|
+ "射线防护椅",
|
|
|
+ "医用射线立式摄片架防护装置、医用射线防护悬吊屏风、医用射线防护屏",
|
|
|
+ "全自动电泳仪、电泳仪、电泳装置、全自动毛细管电泳仪",
|
|
|
+ "核酸提纯仪、全自动核酸提取仪、全自动核酸纯化仪、全自动核酸提取纯化仪",
|
|
|
+ "采血笔、扁形采血笔、筒形采血笔、可调式医用采血笔",
|
|
|
+ "切片机、轮转式切片机、手摇切片机、自动切片机、 冷冻切片机",
|
|
|
+ "制片机、自动制片机、液基薄层细胞制片机",
|
|
|
+ "脱水机、组织脱水机、自动组织脱水机",
|
|
|
+ "包埋机、石蜡包埋机、 病理石蜡包埋机",
|
|
|
+ "涂片机、离心涂片机、液基薄层细胞涂片机",
|
|
|
+ "染色机、自动染片机、组织染色机",
|
|
|
+ "免疫组化预处理系统、自动脱蜡抗原修复仪",
|
|
|
+ "医用离心机、高速离心机、高速冷冻离心机、低速离心机、低速冷冻离心机、大容量冷冻离心机",
|
|
|
+ "钠石灰、钙石灰、二氧化碳吸收剂、碱石灰",
|
|
|
+ "普通产床、妇科手术台、妇科检查床、妇产科综合手术台",
|
|
|
+ "普通手术台、简易手术台、手术床、手术台、骨科手术台、眼科手术台",
|
|
|
+ "检查床、诊疗台、诊疗床",
|
|
|
+ "手术辅助照明灯、手术辅助移动式手术照明灯",
|
|
|
+ "转运车、医用转移车、病人推车、病人推床、平车、楼梯担架、担架、折叠担架、担架车、车载担架车、铲式担架、救护车担架、抢救床",
|
|
|
+ "浮标式氧气吸入器、墙式氧气吸入器、手提式氧气吸入器、供氧系统氧气吸入器",
|
|
|
+ "机械牙科椅、简易牙科椅、轻便牙科椅",
|
|
|
+ "牙医师座椅、医师椅",
|
|
|
+ "牙科电动抽吸机、牙科电动抽吸系统",
|
|
|
+ "牙科电动空压机、牙科电动无油空压机",
|
|
|
+ "水枪头、热气枪头",
|
|
|
+ "吸唾管",
|
|
|
+ "抛光杯",
|
|
|
+ "银汞胶囊调合器、银汞合金调合器、银汞调合器",
|
|
|
+ "口腔灯、口腔照明灯",
|
|
|
+ "口腔观察仪",
|
|
|
+ "体外牙胶加热器",
|
|
|
+ "平型病床、医用平床、普通病床",
|
|
|
+ "手动病床、手摇式病床、手摇式二折病床、手摇式三折病床",
|
|
|
+ "婴儿/新生儿床、母婴床、儿童病床",
|
|
|
+ "充气防褥疮床垫、防褥疮气床垫",
|
|
|
+ "病人转移板、移动滑垫、病人转移垫、电动移位机/车",
|
|
|
+ "医用清洗机、超声波清洗机、超声波清洗器、医用超声波清洗机、内镜清洗机、超声清洗器",
|
|
|
+ "医用冷敷贴、医用降温贴、医用退热贴",
|
|
|
+ "医用冰袋、医用冰垫、医用冰帽、医用冷敷头带、医用冷敷眼罩",
|
|
|
+ "吸潮纸尖",
|
|
|
+ "咬合纸",
|
|
|
+ "基托蜡、铸造蜡、预成型蜡、模型蜡、间接嵌体蜡、代型材料、牙科石膏",
|
|
|
+ "石膏铸造包埋材料、磷酸盐铸造包埋材料、硅胶包埋材料、铸钛包埋材料、模型包埋材料",
|
|
|
+ "牙科分离剂",
|
|
|
+ "琼脂复制材料、硅橡胶复制材料、藻酸盐复制材料",
|
|
|
+ "菌斑指示剂、菌斑显示液",
|
|
|
+ "研磨材料、牙科用研磨材料",
|
|
|
+ "刷手衣、洗手衣",
|
|
|
+ "检查手套、检查指套、卫生帽、护士帽",
|
|
|
+ "石膏衬垫",
|
|
|
+ "聚酯衬垫、冷敷隔离垫",
|
|
|
+ "妇科检查垫、医用护理垫(看护垫)",
|
|
|
+ "医用检查垫",
|
|
|
+ "医用体位胶垫",
|
|
|
+ "急救毯",
|
|
|
+ "脱脂棉球、消毒刷(擦拭器)、棉签、棉片",
|
|
|
+ "弹性创可贴、防水创可贴、棉布创可贴、透气创可贴、橡皮膏、创口贴",
|
|
|
+ "弹性绷带、弹力绷带、纱布绷带、无纺布绷带、三角绷带、高分子固定绷带、玻璃纤维绷带、聚酯纤维绷带、聚氨酯衬垫绷带",
|
|
|
+ "压敏胶带、透气胶贴(非织造布胶带)、透气胶带、弹性胶带、网纹易撕胶带、绑扎胶布、弹性柔棉宽胶带、丝绸布胶带、聚乙烯胶带",
|
|
|
+ "压力绷带、乳腺压力绷带、腹股沟压力绷带、腹带",
|
|
|
+ "卡扣式止血带",
|
|
|
+ "疝气带",
|
|
|
+ "引流袋、吸液袋、负压引流器、负压引流(吸引)接管、集尿袋、尿套",
|
|
|
+ "医用导管夹",
|
|
|
+ "造口袋、肛门袋、造口腰带、裤形造口绷带",
|
|
|
+ "咬口、口垫、咬嘴",
|
|
|
+ "洗耳球、医用洗耳球、塑料洗耳球、橡胶洗耳球",
|
|
|
+ "医用阴道洗涤器、医用阴道冲洗器",
|
|
|
+ "髋膝踝足截瘫行走支具",
|
|
|
+ "造口灌洗器",
|
|
|
+ "测瓣器",
|
|
|
+ "医用打印胶片",
|
|
|
+ "医用干式胶片",
|
|
|
+ "一次性雾化吸入管",
|
|
|
+ "四面镜",
|
|
|
+ "斜视检查镜",
|
|
|
+ "手背静脉显像仪",
|
|
|
+ "打磨抛光组件",
|
|
|
+ "倒像镜及装置",
|
|
|
+ "移动式X射线检查支架",
|
|
|
+ "",
|
|
|
+ "血压袖套(带)",
|
|
|
+ "自动血涂片制备仪",
|
|
|
+ "护牙弯角",
|
|
|
+ "孵育器",
|
|
|
+ "持钉器",
|
|
|
+ "医疗废液收集装置:",
|
|
|
+ "超声治疗固定贴",
|
|
|
+ "医用超声耦合贴片",
|
|
|
+ "X线摄片乳头定位贴",
|
|
|
+ "",
|
|
|
+ "医学图像体外定位贴",
|
|
|
+ "",
|
|
|
+ "显影胶带",
|
|
|
+ "",
|
|
|
+ "一次性使用三用喷枪头",
|
|
|
+ "踝关节无创牵引系统",
|
|
|
+ "血管显像仪",
|
|
|
+ "非接触式眼底广角观察镜",
|
|
|
+ "咽喉镜",
|
|
|
+ "医用胶片打印机",
|
|
|
+ "多功能自助取片机:",
|
|
|
+ "心电导联线",
|
|
|
+ "医用X射线立式摄片架防护装置",
|
|
|
+ "X射线防护舱",
|
|
|
+ "放疗定位球",
|
|
|
+ "超声探头穿刺架",
|
|
|
+ "牙钻清洁工具",
|
|
|
+ "隔离透声膜",
|
|
|
+ "冲洗液袋用压力器",
|
|
|
+ "供氧系统氧气吸入器",
|
|
|
+ "支撑喉镜",
|
|
|
+ "医用X射线悬挂防护服装置",
|
|
|
+ "移动式床旁X射线机防护装置",
|
|
|
+ "电动遥控式医用X射线立式摄片架防护装置",
|
|
|
+ "视力表投影仪",
|
|
|
+ "结扎缝合引线器",
|
|
|
+ "肌腱套取器",
|
|
|
+ "气管扩张钳",
|
|
|
+ "拆钉钳",
|
|
|
+ "异物钳",
|
|
|
+ "微创手术扩张钳",
|
|
|
+ "一次性使用敷料镊",
|
|
|
+ "显微血管吻合牵线夹",
|
|
|
+ "卷棉子",
|
|
|
+ "虹膜刀",
|
|
|
+ "截囊刀",
|
|
|
+ "角巩膜缘切开刀",
|
|
|
+ "劈核刀",
|
|
|
+ "眼球摘出剪",
|
|
|
+ "视网膜剥离镊",
|
|
|
+ "眼用四面镜夹持镊",
|
|
|
+ "眼科前房用针",
|
|
|
+ "截囊钩",
|
|
|
+ "视网膜铲",
|
|
|
+ "人工晶体辅助植入器",
|
|
|
+ "巩膜塞",
|
|
|
+ "巩膜压迫器",
|
|
|
+ "眼科微型器械手柄",
|
|
|
+ "角膜标记环",
|
|
|
+ "白内障手术切口测量尺",
|
|
|
+ "咽喉部脓疱切开器",
|
|
|
+ "乳突咬骨钳",
|
|
|
+ "耳止血钳",
|
|
|
+ "镫骨钳",
|
|
|
+ "鼻异物钳",
|
|
|
+ "喉异物钳",
|
|
|
+ "气管导管夹持钳",
|
|
|
+ "内耳手术剥离针",
|
|
|
+ "耳刮匙",
|
|
|
+ "鼻刮匙",
|
|
|
+ "外耳道扩张器",
|
|
|
+ "喉扩张器",
|
|
|
+ "乳突器械敲击锤",
|
|
|
+ "耳息肉圈断器",
|
|
|
+ "扁桃体圈断器",
|
|
|
+ "鼻骨复位器",
|
|
|
+ "喉显微手术器械手柄",
|
|
|
+ "牙科器械钳",
|
|
|
+ "牙科钛板(网)",
|
|
|
+ "针孔镊",
|
|
|
+ "成形片",
|
|
|
+ "成形片夹",
|
|
|
+ "楔子",
|
|
|
+ "楔形保护片",
|
|
|
+ "转移帽",
|
|
|
+ "牙科祛腐工作尖",
|
|
|
+ "根管中器械取出器",
|
|
|
+ "牙科种植体种植工具",
|
|
|
+ "口腔麻醉注射架(不含针头",
|
|
|
+ "旋入扳手",
|
|
|
+ "自锁托槽开启工具",
|
|
|
+ "托槽定位器",
|
|
|
+ "方丝弓成型器",
|
|
|
+ "方丝扭转器",
|
|
|
+ "颌面外科钛板定位器",
|
|
|
+ "颌面外科手术颊部穿通器",
|
|
|
+ "微创手术用胆总管切开刀",
|
|
|
+ "引导棒",
|
|
|
+ "颈椎前路手术定位针",
|
|
|
+ "髓内定位杆",
|
|
|
+ "膝关节植入物试模",
|
|
|
+ "股骨试模",
|
|
|
+ "膝关节间隙评估块",
|
|
|
+ "膝关节伸直间隙评估片",
|
|
|
+ "胫骨冲头",
|
|
|
+ "胫骨冲头导板",
|
|
|
+ "截骨板",
|
|
|
+ "对线杆",
|
|
|
+ "股骨测定导板",
|
|
|
+ "胫骨截骨定位工具",
|
|
|
+ "股骨截骨定位工具",
|
|
|
+ "对线手柄",
|
|
|
+ "固定平台胫骨托试模",
|
|
|
+ "膝关节骨撬",
|
|
|
+ "膝关节手术用打击器",
|
|
|
+ "关节假体夹持器",
|
|
|
+ "上肢关节骨撬",
|
|
|
+ "髋关节骨撬",
|
|
|
+ "膝关节手术通用手柄",
|
|
|
+ "快装手柄",
|
|
|
+ "指骨夹板",
|
|
|
+ "上/下肢医用外固定支具",
|
|
|
+ "颈椎固定带",
|
|
|
+ "腰椎固定带",
|
|
|
+ "子宫深度测量棒",
|
|
|
+ "输卵管提取钩",
|
|
|
+ "注射助推器(不含注射器",
|
|
|
+ "盆底肌肉康复器",
|
|
|
+ "热塑固定板",
|
|
|
+ "外科手术固定装置",
|
|
|
+ "一次性使用捆扎止血带",
|
|
|
+ "硬膜外穿刺体位约束带",
|
|
|
+ "口腔正畸用反光镜",
|
|
|
+ "牙科用毛刷",
|
|
|
+ "造口减压环",
|
|
|
+ "造口凸面嵌圈",
|
|
|
+ "口腔撑开器",
|
|
|
+ "非封闭式负压引流装置产品",
|
|
|
+ "医用冲洗头",
|
|
|
+ "肛门冲洗器",
|
|
|
+ "一次性使用口腔涂药棒",
|
|
|
+ "制片染色一体机",
|
|
|
+ "细胞分离制片染色一体机",
|
|
|
+ "试剂卡孵育器",
|
|
|
+ "细胞过滤采集器",
|
|
|
+ "组织微阵列制作仪",
|
|
|
+ "标本液化处理仪",
|
|
|
+ "全自动推片染片系统",
|
|
|
+ "粪便检验预处理装置",
|
|
|
+ "一次性使用微量采血吸管",
|
|
|
+ "细胞过滤器",
|
|
|
+ "一次性使用细胞过滤采集器",
|
|
|
+ "马镫形多功能腿架",
|
|
|
+ "飞秒透镜分离铲",
|
|
|
+ "飞秒透镜镊",
|
|
|
+ "飞秒分离匙",
|
|
|
+ "位置定位器",
|
|
|
+ "钻针深度停止器",
|
|
|
+ "钻针引导器",
|
|
|
+ "骨磨引导器",
|
|
|
+ "一次性使用胃镜咬口",
|
|
|
+ "种植体扫描体",
|
|
|
+ "机用螺丝刀",
|
|
|
+ "胸腰骶固定器",
|
|
|
+ "一次性五官科清洗套装",
|
|
|
+ "自助取片机",
|
|
|
+ "热敏胶片",
|
|
|
+ "超声波清洗机",
|
|
|
+ }
|
|
|
+ arr2 := []string{
|
|
|
+ "手术器械-刀",
|
|
|
+ "手术器械-刀",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "手术器械-刀",
|
|
|
+ "手术器械-剪",
|
|
|
+ "手术器械-剪",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-吻(缝)合器械及材料",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-镊",
|
|
|
+ "手术器械-针",
|
|
|
+ "手术器械-针",
|
|
|
+ "手术器械-针",
|
|
|
+ "手术器械-针",
|
|
|
+ "手术器械-针",
|
|
|
+ "手术器械-钩",
|
|
|
+ "手术器械-牵开器",
|
|
|
+ "手术器械-刮匙",
|
|
|
+ "手术器械-穿刺导引器",
|
|
|
+ "手术器械-剥离器",
|
|
|
+ "手术器械-冲吸器",
|
|
|
+ "手术器械-刀",
|
|
|
+ "手术器械-剪",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-镊",
|
|
|
+ "手术器械-夹",
|
|
|
+ "手术器械-针",
|
|
|
+ "手术器械-冲吸器",
|
|
|
+ "手术器械-钩",
|
|
|
+ "手术器械-冲吸器",
|
|
|
+ "手术器械-剥离器",
|
|
|
+ "神经和心血管手术器械-钳",
|
|
|
+ "神经和心血管手术器械-牵开器",
|
|
|
+ "骨科用钩",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "神经和心血管手术器械-穿刺导引器",
|
|
|
+ "神经和心血管手术器械-其他器械",
|
|
|
+ "神经和心血管手术器械-穿刺导引器",
|
|
|
+ "神经和心血管手术器械-牵开器",
|
|
|
+ "神经和心血管手术器械-其他器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科治疗和手术设备、辅助器具",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "手术器械-刀",
|
|
|
+ "手术器械-凿",
|
|
|
+ "手术器械-剪",
|
|
|
+ "手术器械-剪",
|
|
|
+ "手术器械-剪",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-镊",
|
|
|
+ "手术器械-钩",
|
|
|
+ "手术器械-针",
|
|
|
+ "手术器械-牵开器",
|
|
|
+ "手术器械-牵开器",
|
|
|
+ "手术器械-冲吸器",
|
|
|
+ "手术器械-剥离器",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "手术器械-凿",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔植入及组织重建材料",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔诊察器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔诊察器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "神经和心血管手术器械-刀",
|
|
|
+ "神经和心血管手术器械-剪",
|
|
|
+ "神经和心血管手术器械-钳",
|
|
|
+ "神经和心血管手术器械-钳",
|
|
|
+ "神经和心血管手术器械-夹",
|
|
|
+ "神经和心血管手术器械-镊",
|
|
|
+ "神经和心血管手术器械-钩",
|
|
|
+ "手术器械-剥离器",
|
|
|
+ "骨科其他手术器械",
|
|
|
+ "神经和心血管手术器械-其他器械",
|
|
|
+ "手术器械-剪",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-吻(缝)合器械及材料",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钩",
|
|
|
+ "手术器械-针",
|
|
|
+ "手术器械-牵开器",
|
|
|
+ "手术器械-刮匙",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-冲吸器",
|
|
|
+ "手术器械-牵开器",
|
|
|
+ "手术器械-牵开器",
|
|
|
+ "手术器械-牵开器",
|
|
|
+ "手术器械-剪",
|
|
|
+ "手术器械-剪",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-针",
|
|
|
+ "手术器械-钩",
|
|
|
+ "手术器械-牵开器",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "手术器械-夹",
|
|
|
+ "清洗、灌洗、吸引、给药器械",
|
|
|
+ "清洗、灌洗、吸引、给药器械",
|
|
|
+ "骨科用刀",
|
|
|
+ "骨科用刀",
|
|
|
+ "创伤外科辅助器械",
|
|
|
+ "骨科用刀",
|
|
|
+ "骨科用锥",
|
|
|
+ "骨科用锥",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "骨科用钻",
|
|
|
+ "骨科用钻",
|
|
|
+ "神经和心血管手术器械-穿刺导引器",
|
|
|
+ "骨科用钻",
|
|
|
+ "骨科用钻",
|
|
|
+ "骨科用钻",
|
|
|
+ "骨科用钻",
|
|
|
+ "骨科用剪",
|
|
|
+ "骨科用剪",
|
|
|
+ "骨科用剪",
|
|
|
+ "骨科用钳",
|
|
|
+ "骨科用钳",
|
|
|
+ "骨科用钳",
|
|
|
+ "骨科用钳",
|
|
|
+ "骨科用钳",
|
|
|
+ "骨科用钳",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "骨科用锯",
|
|
|
+ "骨科用锯",
|
|
|
+ "骨科用锯",
|
|
|
+ "骨科用锯",
|
|
|
+ "骨科用锯",
|
|
|
+ "骨科用凿",
|
|
|
+ "骨科用锉、铲",
|
|
|
+ "骨科用锉、铲",
|
|
|
+ "骨科用钩",
|
|
|
+ "骨科用钩",
|
|
|
+ "骨科用钩",
|
|
|
+ "骨科用钩",
|
|
|
+ "骨科用针",
|
|
|
+ "骨科用针",
|
|
|
+ "骨科用针",
|
|
|
+ "骨科用针",
|
|
|
+ "骨科用刮",
|
|
|
+ "骨科其他手术器械",
|
|
|
+ "骨科用有源器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "创伤外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "骨科用锯",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "创伤外科辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "创伤外科辅助器械",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "创伤外科辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "创伤外科辅助器械",
|
|
|
+ "创伤外科辅助器械",
|
|
|
+ "创伤外科辅助器械",
|
|
|
+ "创伤外科辅助器械",
|
|
|
+ "脊柱外科辅助器械",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "骨科其他手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科测量、监护设备",
|
|
|
+ "手术器械-针",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科测量、监护设备",
|
|
|
+ "妊娠控制器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科诊断器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妊娠控制器械",
|
|
|
+ "妊娠控制器械",
|
|
|
+ "妊娠控制器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "妇产科诊断器械",
|
|
|
+ "血管内输液器械",
|
|
|
+ "注射、穿刺器械",
|
|
|
+ "手术器械-刀",
|
|
|
+ "手术器械-凿",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-镊",
|
|
|
+ "手术器械-夹",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "手术器械-剥离器",
|
|
|
+ "手术器械-钩",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "手术器械-穿刺导引器",
|
|
|
+ "手术器械-刮匙",
|
|
|
+ "手术器械-穿刺导引器",
|
|
|
+ "诊察辅助器械",
|
|
|
+ "诊察辅助器械",
|
|
|
+ "诊察辅助器械",
|
|
|
+ "诊察辅助器械",
|
|
|
+ "视光设备和器具",
|
|
|
+ "视光设备和器具",
|
|
|
+ "视光设备和器具",
|
|
|
+ "视光设备和器具",
|
|
|
+ "诊察辅助器械",
|
|
|
+ "诊察辅助器械",
|
|
|
+ "光学成像诊断设备",
|
|
|
+ "超声影像诊断附属设备",
|
|
|
+ "中医器具",
|
|
|
+ "中医器具",
|
|
|
+ "中医器具",
|
|
|
+ "X射线影像接收处理装置",
|
|
|
+ "图像显示、处理、传输及打印设备",
|
|
|
+ "X射线影像接收处理装置",
|
|
|
+ "X射线影像接收处理装置",
|
|
|
+ "X射线影像接收处理装置",
|
|
|
+ "X射线附属及辅助设备",
|
|
|
+ "X射线附属及辅助设备",
|
|
|
+ "图像显示、处理、传输及打印设备",
|
|
|
+ "X射线附属及辅助设备",
|
|
|
+ "X射线附属及辅助设备",
|
|
|
+ "X射线附属及辅助设备",
|
|
|
+ "X射线附属及辅助设备",
|
|
|
+ "放射治疗配套器械",
|
|
|
+ "X射线附属及辅助设备",
|
|
|
+ "医用射线防护设备",
|
|
|
+ "医用射线防护设备",
|
|
|
+ "医用射线防护设备",
|
|
|
+ "其他医用分析设备",
|
|
|
+ "样本分离设备",
|
|
|
+ "采样设备和器具",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "样本分离设备",
|
|
|
+ "呼吸、麻醉、急救设备辅助装置",
|
|
|
+ "妇产科承载器械",
|
|
|
+ "手术台",
|
|
|
+ "诊疗台",
|
|
|
+ "手术照明设备",
|
|
|
+ "患者转运器械",
|
|
|
+ "呼吸、麻醉、急救设备辅助装置",
|
|
|
+ "口腔治疗设备",
|
|
|
+ "口腔治疗设备",
|
|
|
+ "口腔治疗设备",
|
|
|
+ "口腔治疗设备",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗设备",
|
|
|
+ "口腔诊察设备",
|
|
|
+ "口腔诊察设备",
|
|
|
+ "口腔治疗设备",
|
|
|
+ "医用病床",
|
|
|
+ "医用病床",
|
|
|
+ "医用病床",
|
|
|
+ "防压疮(褥疮)垫",
|
|
|
+ "患者转运器械",
|
|
|
+ "清洗消毒设备",
|
|
|
+ "温热(冷)治疗设备/器具",
|
|
|
+ "温热(冷)治疗设备/器具",
|
|
|
+ "口腔治疗辅助材料",
|
|
|
+ "口腔治疗辅助材料",
|
|
|
+ "口腔治疗辅助材料",
|
|
|
+ "口腔治疗辅助材料",
|
|
|
+ "口腔治疗辅助材料",
|
|
|
+ "口腔治疗辅助材料",
|
|
|
+ "其他口腔材料",
|
|
|
+ "口腔治疗辅助材料",
|
|
|
+ "手术室感染控制用品",
|
|
|
+ "医护人员防护用品",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "病人护理防护用品",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "病人护理防护用品",
|
|
|
+ "防压疮(褥疮)垫",
|
|
|
+ "其它器械",
|
|
|
+ "其它器械",
|
|
|
+ "创面敷料",
|
|
|
+ "包扎敷料",
|
|
|
+ "包扎敷料",
|
|
|
+ "其它器械",
|
|
|
+ "止血器具",
|
|
|
+ "矫形固定器械",
|
|
|
+ "与非血管内导管配套用体外器械",
|
|
|
+ "其它器械",
|
|
|
+ "造口、疤痕护理用品",
|
|
|
+ "内窥镜辅助用品",
|
|
|
+ "清洗、灌洗、吸引、给药器械",
|
|
|
+ "妇产科手术器械",
|
|
|
+ "助行器械",
|
|
|
+ "造口、疤痕护理用品",
|
|
|
+ "神经和心血管手术器械-其他器械",
|
|
|
+ "图像显示、处理、传输及打印设备",
|
|
|
+ "图像显示、处理、传输及打印设备",
|
|
|
+ "呼吸、麻醉用管路、面罩",
|
|
|
+ "眼科测量诊断设备和器具",
|
|
|
+ "眼科测量诊断设备和器具",
|
|
|
+ "其它器械",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "眼科测量诊断设备和器具",
|
|
|
+ "X射线附属及",
|
|
|
+ "辅助设备",
|
|
|
+ "附件、耗材",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "培养与孵育设备",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "与非血管内导管配套用体外器械",
|
|
|
+ "超声治疗设备",
|
|
|
+ "超声影像诊断附属设备",
|
|
|
+ "X射线附属及",
|
|
|
+ "辅助设备",
|
|
|
+ "X射线附属及",
|
|
|
+ "辅助设备",
|
|
|
+ "X射线附属及",
|
|
|
+ "辅助设备",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "其它器械",
|
|
|
+ "口腔充填修复材料",
|
|
|
+ "诊察辅助器械",
|
|
|
+ "图像显示、处理、传输及打印设备",
|
|
|
+ "图像显示、处理、传输及打印设备",
|
|
|
+ "附件、耗材",
|
|
|
+ "医用射线防护设备",
|
|
|
+ "医用射线防护设备",
|
|
|
+ "放射治疗配套器械",
|
|
|
+ "超声影像诊断附属设备",
|
|
|
+ "清洗消毒设备",
|
|
|
+ "超声治疗设备",
|
|
|
+ "与非血管内导管配套用体外器械",
|
|
|
+ "呼吸、麻醉、急救设备辅助装置",
|
|
|
+ "诊察辅助器械",
|
|
|
+ "医用射线防护设备",
|
|
|
+ "医用射线防护设备",
|
|
|
+ "医用射线防护设备",
|
|
|
+ "口腔治疗设备",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-镊",
|
|
|
+ "手术器械-夹",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科植入物及辅助器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "眼科无源辅助手术器械",
|
|
|
+ "手术器械-刀",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-钳",
|
|
|
+ "手术器械-针",
|
|
|
+ "手术器械-刮匙",
|
|
|
+ "手术器械-刮匙",
|
|
|
+ "手术器械-牵开器",
|
|
|
+ "手术器械-牵开器",
|
|
|
+ "手术器械-凿",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "手术器械-其他器械",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗辅助材料",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗辅助材料",
|
|
|
+ "口腔治疗辅助材料",
|
|
|
+ "口腔植入及组织重建材料",
|
|
|
+ "口腔治疗设备",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "手术器械-刀",
|
|
|
+ "手术器械-穿刺导引器",
|
|
|
+ "骨科用针",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "基础通用辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "关节外科辅助器械",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "妇产科测量、监护设备",
|
|
|
+ "妊娠控制器械",
|
|
|
+ "注射、穿刺器械",
|
|
|
+ "运动康复训练器械",
|
|
|
+ "放射治疗配套器械",
|
|
|
+ "患者位置固定辅助器械",
|
|
|
+ "止血器具",
|
|
|
+ "患者位置固定辅助器械",
|
|
|
+ "口腔诊察器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "造口、疤痕护理用品",
|
|
|
+ "造口、疤痕护理用品",
|
|
|
+ "手术器械-牵开器",
|
|
|
+ "与非血管内导管配套用体外器械",
|
|
|
+ "清洗、灌洗、吸引、给药器械",
|
|
|
+ "清洗、灌洗、吸引、给药器械",
|
|
|
+ "其它器械",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "培养与孵育设备",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "检验及其他辅助设备",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "检验及其他辅助设备",
|
|
|
+ "采样设备和器具",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "形态学分析前样本处理设备",
|
|
|
+ "患者位置固定辅助器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "眼科无源手术器械",
|
|
|
+ "口腔植入及组织重建材料",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "内窥镜辅助用品",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "口腔治疗器具",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "外固定及牵引器械",
|
|
|
+ "图像显示、处理、传输及打印设备",
|
|
|
+ "图像显示、处理、传输及打印设备",
|
|
|
+ "清洗消毒设备",
|
|
|
+ }
|
|
|
+ for k, v := range arr1 {
|
|
|
+ arr := strings.Split(v, "、")
|
|
|
+ for _, v1 := range arr {
|
|
|
+ info[v1] = arr2[k]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.Debug("加载数量~", len(info))
|
|
|
+ return info
|
|
|
+}
|
|
|
+
|
|
|
+//具体方法
|
|
|
+func calculationYlqxCode(yl_code string) (bool, map[string]interface{}) {
|
|
|
+ update := map[string]interface{}{}
|
|
|
+ if len(yl_code) == 2 {
|
|
|
+ update["product_class_1"] = YlqxCodeName[yl_code]
|
|
|
+ } else if len(yl_code) == 4 {
|
|
|
+ update["product_class_1"] = YlqxCodeName[yl_code[:2]]
|
|
|
+ update["product_class_2"] = YlqxCodeName[yl_code]
|
|
|
+ } else if len(yl_code) == 7 {
|
|
|
+ update["product_class_1"] = YlqxCodeName[yl_code[:2]]
|
|
|
+ update["product_class_2"] = YlqxCodeName[yl_code[:4]]
|
|
|
+ update["product_class_3"] = YlqxCodeName[yl_code]
|
|
|
+ } else if len(yl_code) == 11 {
|
|
|
+ update["product_class_1"] = YlqxCodeName[yl_code[:2]]
|
|
|
+ update["product_class_2"] = YlqxCodeName[yl_code[:4]]
|
|
|
+ update["product_class_3"] = YlqxCodeName[yl_code[:7]]
|
|
|
+ update["product_class_4"] = YlqxCodeName[yl_code]
|
|
|
+ } else {
|
|
|
+ return false, update
|
|
|
+ }
|
|
|
+ update["product_class_code"] = yl_code
|
|
|
+ return true, update
|
|
|
+}
|
|
|
+func calculationYlqxScRange(company string, old_class string, old_name string) ([]map[string]interface{}, []string) {
|
|
|
+ dataArr, _ := Save_Mgo.Find("nmpa_company_new", bson.M{"company": company}, nil, bson.M{"product_range": 1})
|
|
|
+ infoArr := []map[string]interface{}{}
|
|
|
+ codeArr := []string{}
|
|
|
+ for _, v := range dataArr {
|
|
|
+ product_range := qu.ObjToString(v["product_range"])
|
|
|
+ matchArr1 := ScRangeReg1.FindAllString(product_range, -1)
|
|
|
+ if len(matchArr1) > 0 {
|
|
|
+ for _, v1 := range matchArr1 {
|
|
|
+ name := ScRangeReg1.ReplaceAllString(v1, "${4}")
|
|
|
+ name = ScRangeClean1.ReplaceAllString(name, "")
|
|
|
+ name = ScRangeClean2.ReplaceAllString(name, "")
|
|
|
+ b, res := calculationYlqxCode(YlqxNameCode[name])
|
|
|
+ //根据结果校验一下,是否有效合理
|
|
|
+ if b && checkYlqxInfoRight(res, old_class, old_name) {
|
|
|
+ infoArr = append(infoArr, res)
|
|
|
+ codeArr = append(codeArr, YlqxNameCode[name])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ matchArr2 := ScRangeReg2.FindAllString(product_range, -1)
|
|
|
+ for _, v1 := range matchArr2 {
|
|
|
+ if strings.Contains(v1, "分类目录") {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ name := ScRangeReg2.ReplaceAllString(v1, "${2}")
|
|
|
+ name = ScRangeClean1.ReplaceAllString(name, "")
|
|
|
+ name = ScRangeClean2.ReplaceAllString(name, "")
|
|
|
+ b, res := calculationYlqxCode(YlqxNameCode[name])
|
|
|
+ //根据结果校验一下,是否有效合理
|
|
|
+ if b && checkYlqxInfoRight(res, old_class, old_name) {
|
|
|
+ infoArr = append(infoArr, res)
|
|
|
+ codeArr = append(codeArr, YlqxNameCode[name])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //进行有效结果去重
|
|
|
+ infoArr, codeArr, _ = resultRepeat(infoArr, codeArr, nil)
|
|
|
+ //进行有效结果合并
|
|
|
+ infoArr, codeArr, _ = resultMerge(infoArr, codeArr, nil)
|
|
|
+
|
|
|
+ return infoArr, codeArr
|
|
|
+}
|
|
|
+func resultRepeat(infos []map[string]interface{}, codes []string, matchs []string) ([]map[string]interface{}, []string, []string) {
|
|
|
+ new_infos := []map[string]interface{}{}
|
|
|
+ new_codes := []string{}
|
|
|
+ new_matchs := []string{}
|
|
|
+ temp := map[string]string{}
|
|
|
+ for k, v := range infos {
|
|
|
+ c1, c2 := qu.ObjToString(v["product_class_1"]), qu.ObjToString(v["product_class_2"])
|
|
|
+ c3, c4 := qu.ObjToString(v["product_class_3"]), qu.ObjToString(v["product_class_4"])
|
|
|
+ key := c1 + "~" + c2 + "~" + c3 + "~" + c4 + "~"
|
|
|
+ if temp[key] == "" {
|
|
|
+ new_infos = append(new_infos, v)
|
|
|
+ new_codes = append(new_codes, codes[k])
|
|
|
+ if matchs != nil && len(matchs) > 0 {
|
|
|
+ new_matchs = append(new_matchs, matchs[k])
|
|
|
+ }
|
|
|
+ temp[key] = key
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new_infos, new_codes, new_matchs
|
|
|
+}
|
|
|
+func resultMerge(infoArr []map[string]interface{}, codeArr []string, matchArr []string) ([]map[string]interface{}, []string, []string) {
|
|
|
+ new_infos := []map[string]interface{}{}
|
|
|
+ new_codes := []string{}
|
|
|
+ new_matchs := []string{}
|
|
|
+ for k, v := range codeArr {
|
|
|
+ isValid := true
|
|
|
+ l := utf8.RuneCountInString(v)
|
|
|
+ for k1, v1 := range codeArr {
|
|
|
+ if k == k1 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ l1 := utf8.RuneCountInString(v1)
|
|
|
+ if l1 > l {
|
|
|
+ if v1[:l] == v {
|
|
|
+ isValid = false
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if isValid {
|
|
|
+ new_infos = append(new_infos, infoArr[k])
|
|
|
+ new_codes = append(new_codes, codeArr[k])
|
|
|
+ if matchArr != nil && len(matchArr) > 0 {
|
|
|
+ new_matchs = append(new_matchs, matchArr[k])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new_infos, new_codes, new_matchs
|
|
|
+}
|
|
|
+func checkYlqxInfoRight(res map[string]interface{}, class string, name string) bool {
|
|
|
+ if class != "" {
|
|
|
+ if qu.ObjToString(res["product_class_1"]) != class {
|
|
|
+ return false
|
|
|
+ } else {
|
|
|
+ if qu.ObjToString(res["product_class_2"]) == "" {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if SpecRangeReg.MatchString(name) {
|
|
|
+ if qu.ObjToString(res["product_class_1"]) != "体外诊断试剂" {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true
|
|
|
+}
|
|
|
+func checkYlqxResultRightFourth(resArr []map[string]interface{}, codeArr []string, old_class string) (bool, map[string]interface{}, string) {
|
|
|
+ if len(resArr) == 0 {
|
|
|
+ return false, map[string]interface{}{}, ""
|
|
|
+ }
|
|
|
+ if len(resArr) == 1 {
|
|
|
+ return true, resArr[0], codeArr[0]
|
|
|
+ }
|
|
|
+ if old_class != "" {
|
|
|
+ return false, map[string]interface{}{}, ""
|
|
|
+ }
|
|
|
+ return false, map[string]interface{}{}, ""
|
|
|
+}
|
|
|
+func checkYlqxResultRightSeventh(resArr []map[string]interface{}, codeArr []string, matchArr []string, old_class string) (bool, map[string]interface{}, string) {
|
|
|
+ if len(resArr) == 0 {
|
|
|
+ return false, map[string]interface{}{}, ""
|
|
|
+ }
|
|
|
+ if len(resArr) == 1 {
|
|
|
+ return true, resArr[0], codeArr[0]
|
|
|
+ }
|
|
|
+ //取最大配词
|
|
|
+ if index := getMaxLengthMatchName(matchArr); index > -1 {
|
|
|
+ return true, resArr[index], codeArr[index]
|
|
|
+ }
|
|
|
+ //取最大一级类别
|
|
|
+ if old_class != "" {
|
|
|
+ return false, map[string]interface{}{}, ""
|
|
|
+ }
|
|
|
+ if new_class := getMaxFirstClassName(resArr); new_class != "" {
|
|
|
+ code := YlqxNameCode[new_class]
|
|
|
+ return true, map[string]interface{}{"product_class_1": new_class, "product_class_code": code}, code
|
|
|
+ }
|
|
|
+ return false, map[string]interface{}{}, ""
|
|
|
+}
|
|
|
+func getMaxFirstClassName(resArr []map[string]interface{}) string {
|
|
|
+ infos := map[string]int{}
|
|
|
+ for _, v := range resArr {
|
|
|
+ key := qu.ObjToString(v["product_class_1"])
|
|
|
+ num := qu.IntAll(infos[key])
|
|
|
+ infos[key] = num + 1
|
|
|
+ }
|
|
|
+ new_class := ""
|
|
|
+ info_count := 0
|
|
|
+ for k, v := range infos {
|
|
|
+ if v > info_count {
|
|
|
+ new_class = k
|
|
|
+ info_count = v
|
|
|
+ } else if v == info_count {
|
|
|
+ new_class = ""
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new_class
|
|
|
+}
|
|
|
+func getMaxLengthMatchName(matchArr []string) int {
|
|
|
+ //取长度最长的词
|
|
|
+ match_count := 0
|
|
|
+ match_index := -1
|
|
|
+ for k, v := range matchArr {
|
|
|
+ l := utf8.RuneCountInString(v)
|
|
|
+ if l > match_count {
|
|
|
+ match_index = k
|
|
|
+ match_count = l
|
|
|
+ } else if l == match_count {
|
|
|
+ match_index = -1
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return match_index
|
|
|
+}
|
|
|
+
|
|
|
+func flagTagLog(flag string, tag string) string {
|
|
|
+ if flag == "" {
|
|
|
+ return tag
|
|
|
+ }
|
|
|
+ return flag + "," + tag
|
|
|
+}
|
|
|
+
|
|
|
+//拆分合并医疗产品与企业信息
|
|
|
+func splitMergeMedicalInfo(coll string) {
|
|
|
+ sess := Old_Mgo.GetMgoConn()
|
|
|
+ defer Old_Mgo.DestoryMongoConn(sess)
|
|
|
+ q, total := map[string]interface{}{}, 0
|
|
|
+ it := sess.DB(Old_Mgo.DbName).C(coll).Find(&q).Sort("_id").Iter()
|
|
|
+ for tmp := make(map[string]interface{}); it.Next(&tmp); total++ {
|
|
|
+ if total%10000 == 0 {
|
|
|
+ log.Debug("cur index ", total)
|
|
|
+ }
|
|
|
+ classify := qu.ObjToString(tmp["classify"])
|
|
|
+ reg_no := qu.ObjToString(tmp["reg_no"])
|
|
|
+ if reg_no == "" { //异常数据
|
|
|
+ tmp = make(map[string]interface{})
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if classify == "医疗器械生产企业(许可)" || classify == "医疗器械生产企业(备案)" ||
|
|
|
+ classify == "医疗器械经营企业(许可)" || classify == "医疗器械经营企业(备案)" {
|
|
|
+ company := qu.ObjToString(tmp["company"])
|
|
|
+ if company != "" {
|
|
|
+ if companyTemp[reg_no] == "" {
|
|
|
+ companyTemp[reg_no] = company
|
|
|
+ Save_Mgo.Save("nmpa_company_new", tmp)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ product_name := qu.ObjToString(tmp["product_name"])
|
|
|
+ if product_name != "" {
|
|
|
+ if productTemp[reg_no] == "" {
|
|
|
+ productTemp[reg_no] = product_name
|
|
|
+ Save_Mgo.Save("nmpa_product_new", tmp)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tmp = make(map[string]interface{})
|
|
|
+ }
|
|
|
+ log.Debug("is over ", total)
|
|
|
+}
|