• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于多線程消息框架的智能藥房控制系統(tǒng)設(shè)計(jì)

      2022-03-30 14:02:52吳文超王鵬飛陳一凡
      計(jì)算機(jī)測量與控制 2022年2期
      關(guān)鍵詞:上藥主程序線程

      吳文超,王鵬飛,陳一凡,王 瑞,葉 敏,瞿 寧

      (上海無線電設(shè)備研究所,上海 200090)

      0 引言

      目前,信息技術(shù)在醫(yī)療衛(wèi)生領(lǐng)域已經(jīng)得到了較普遍的應(yīng)用[1-3],各種規(guī)模的醫(yī)院一般部署了HIS(醫(yī)院信息系統(tǒng)),這使得醫(yī)院中對(duì)各類信息的管理效率得到了大大的提高。發(fā)藥環(huán)節(jié)是影響工作效率提高的一個(gè)瓶頸環(huán)節(jié),多數(shù)醫(yī)院目前還是使用手工方式進(jìn)行發(fā)藥操作,速度慢、工作強(qiáng)度大并且易產(chǎn)生錯(cuò)誤[4-7]。具有高度自動(dòng)化的智能藥房系統(tǒng)[8-10]較好地彌補(bǔ)了這方面的不足, 它將處方發(fā)藥操作由軟件系統(tǒng)控制,由基于嵌入式平臺(tái)的自動(dòng)化機(jī)件系統(tǒng)完成操作, 速度快、準(zhǔn)確率高并且容易維護(hù)。智能藥房系統(tǒng)大大提高醫(yī)療機(jī)構(gòu)的工作效率,是構(gòu)建現(xiàn)代醫(yī)療機(jī)構(gòu)的一個(gè)必然的發(fā)展方向[11-12]。

      目前智能藥房自動(dòng)化設(shè)備形式主要有機(jī)械手式、存儲(chǔ)藥槽式、散裝藥品式、回轉(zhuǎn)柜式等方式[13- 17],主要通過運(yùn)動(dòng)控制卡,PLC,CPLD,數(shù)控系統(tǒng)等傳統(tǒng)控制方式[18-19],系統(tǒng)存在功能較為簡單,拓展性不足、智能化程度不夠的缺點(diǎn)。本文提出一種模塊化多線程消息機(jī)制軟件框架[20-21],基于Windows進(jìn)行控制系統(tǒng)設(shè)計(jì),以解決智能藥房控制系統(tǒng)上訴不足。

      1 智能藥房系統(tǒng)組成

      智能藥房系統(tǒng)包含的主要硬件有機(jī)架機(jī)構(gòu),工控機(jī),發(fā)藥控制模塊,一體式步進(jìn)電機(jī),可編程伺服電機(jī),IO控制板及相應(yīng)的傳感器、執(zhí)行器。智能藥房系統(tǒng)由3大模塊組成:發(fā)藥模塊、上藥模塊和左、右出藥模塊,通過工控機(jī)實(shí)現(xiàn)對(duì)藥房各個(gè)模塊的控制。系統(tǒng)硬件模塊組成如圖1所示。

      圖1 系統(tǒng)硬件模塊組成

      發(fā)藥模塊實(shí)現(xiàn)藥品的發(fā)出功能,主要由發(fā)藥電控模塊,傳輸皮帶和安全門電機(jī)構(gòu)成,其中,發(fā)藥電控模塊通過CAN總線與工控機(jī)通信,接收工控機(jī)的指令實(shí)現(xiàn)發(fā)藥動(dòng)作,使得藥品從藥槽中滑出,并掉落在皮帶上方,此時(shí)通過控制皮帶運(yùn)轉(zhuǎn)將藥品傳輸?shù)匠鏊幠K。上藥模塊實(shí)現(xiàn)藥品入庫功能,主要由上藥臺(tái)、龍門和機(jī)械手組成,機(jī)械手整體位于龍門移動(dòng)軸上,通過龍門X,Z軸的運(yùn)動(dòng),帶動(dòng)機(jī)械手運(yùn)動(dòng)到指定的上藥槽或儲(chǔ)藥槽。上藥平臺(tái)、龍門和機(jī)械手采用電機(jī)進(jìn)行驅(qū)動(dòng),通過RS485總線與工控機(jī)實(shí)現(xiàn)通信。出藥模塊由左右兩個(gè)提升機(jī)及傳輸皮帶組成,將藥品最后輸送到指定的窗口,并提示用戶取藥。

      2 控制系統(tǒng)軟件設(shè)計(jì)

      2.1 開發(fā)環(huán)境

      智能藥房控制系統(tǒng)采用Labview開發(fā)平臺(tái)進(jìn)行開發(fā)[21],其采用G編程語言結(jié)合圖形化界面,提供豐富的對(duì)外通信接口和工具,能夠一定程度降低系統(tǒng)的開發(fā)難度,大大加快軟件系統(tǒng)的開發(fā)進(jìn)展。

      2.2 任務(wù)劃分

      智能藥房控制系統(tǒng)主要有外部接口通信,上藥功能,發(fā)藥功能,出藥功能,其中外部接口通信為背景后臺(tái)運(yùn)行,負(fù)責(zé)響應(yīng)外部系統(tǒng)的任務(wù)指令。出于軟件模塊化以及開發(fā)調(diào)試簡化的考慮,上藥功能,發(fā)藥功能,出藥功能設(shè)計(jì)為獨(dú)立并行運(yùn)行模塊,以保證在進(jìn)行外部發(fā)藥任務(wù)時(shí),藥房控制系統(tǒng)仍然有能力響應(yīng)上藥指令動(dòng)作以及實(shí)現(xiàn)左右兩個(gè)出藥機(jī)構(gòu)的同時(shí)運(yùn)行,增加智能藥房系統(tǒng)的運(yùn)行效率。

      2.3 模塊及線程分配

      根據(jù)智能藥房的模塊與功能組成,并考慮到各模塊之間的并發(fā)和開發(fā)調(diào)試方面的獨(dú)立性,軟件采用模塊化的設(shè)計(jì)方法,將智能藥房控制系統(tǒng)分為TCP通信模塊、藥倉模塊、左提籃機(jī)模塊、右提籃機(jī)模塊、上藥綜合模塊、配置數(shù)據(jù)管理模塊以及主程序。系統(tǒng)運(yùn)行時(shí)各模塊均嵌入到主程序模塊,主程序模塊不實(shí)現(xiàn)具體的功能,完成對(duì)各子模塊的綜合調(diào)度,各子模塊均可獨(dú)立運(yùn)行和調(diào)試,單獨(dú)實(shí)現(xiàn)各子模塊特有的功能,軟件開發(fā)時(shí),可對(duì)各子模塊進(jìn)行同步開發(fā),節(jié)約開發(fā)時(shí)間。

      子模塊和主模塊均采用生產(chǎn)者-消費(fèi)者模式多線程消息架構(gòu),各模塊之間可實(shí)現(xiàn)靈活的功能調(diào)用,便于實(shí)現(xiàn)復(fù)雜的流程設(shè)計(jì)。

      根據(jù)2.2節(jié)進(jìn)行的任務(wù)劃分,智能藥房控制系統(tǒng)包含有TCP通信模塊,上藥模塊,發(fā)藥模塊,左出藥模塊,右出藥模塊,主程序模塊以及配置數(shù)據(jù)管理。

      模塊框架如圖2所示,TCP通信模塊接收藥房數(shù)據(jù)管理系統(tǒng)(上位機(jī))下發(fā)的指令后,將指令解析后傳送到下位機(jī)主程序,主程序根據(jù)指令內(nèi)容按照順序進(jìn)行進(jìn)一步解析,將解析后的動(dòng)作序發(fā)送到向上藥模塊、發(fā)藥模塊、左出藥模塊、右出藥模塊,進(jìn)而通過相關(guān)機(jī)構(gòu)進(jìn)行藥品的進(jìn)出操作,在完成藥品進(jìn)出操作后,再向TCP通信模塊發(fā)出調(diào)用指令,通過TCP通信模塊向上位機(jī)回饋指令的執(zhí)行情況。系統(tǒng)各模塊均為獨(dú)立運(yùn)行的狀態(tài),上藥、發(fā)藥動(dòng)作可同步進(jìn)行動(dòng)作。

      圖2 模塊關(guān)系框架

      2.3.1 TCP通信模塊

      如圖3所示,TCP通信模塊包含界面事件線程、TCP通信線程、指令執(zhí)行線程3個(gè)線程。其中界面事件線程用于調(diào)試使用,通過界面事件觸發(fā)執(zhí)行特定的指令發(fā)送。界面事件線程用于調(diào)試,發(fā)出TCP發(fā)送指令的指令以及向外部系統(tǒng)發(fā)送TCP指令;TCP接收與解析線程用于接收TCP指令,并將TCP指令解析成對(duì)應(yīng)的系統(tǒng)指令,通過隊(duì)列消息傳送到指令執(zhí)行線程,最后指令執(zhí)行線程執(zhí)行指令將指令通過隊(duì)列消息發(fā)送到主程序。

      圖3 TCP通信模塊設(shè)計(jì)

      2.3.2 主程序模塊

      如圖4所示,主程序模塊包含界面事件線程、指令執(zhí)行線程以及后臺(tái)監(jiān)控線程3個(gè)線程。其中界面事件線程用于調(diào)試使用,用于進(jìn)行上藥、發(fā)藥、出藥、盤點(diǎn)等指令的手動(dòng)調(diào)試以及作為控制系統(tǒng)其它模塊的啟動(dòng)接口,便于實(shí)現(xiàn)多模塊的聯(lián)合調(diào)試。指令執(zhí)行線程執(zhí)行對(duì)應(yīng)的程序指令,將相應(yīng)的模塊指令通過隊(duì)列消息下發(fā)到各個(gè)模塊,模塊指令的內(nèi)容從文件讀取,需要執(zhí)行的指令來自主程序調(diào)試界面或者TCP通信模塊的消息。后臺(tái)監(jiān)控線程執(zhí)行外部門開傳感器監(jiān)控,模塊報(bào)警監(jiān)控,并執(zhí)行監(jiān)控到異常后的相應(yīng)動(dòng)作功能。

      圖4 主控模塊設(shè)計(jì)

      2.3.3 上藥、發(fā)藥、左右出藥模塊

      模塊軟件架構(gòu)與前文所訴主控模塊、TCP通信模塊相同,上藥模塊、發(fā)藥模塊、左出藥模塊、右出藥模塊均包含界面事件線程,指令執(zhí)行線程以及后臺(tái)監(jiān)控線程3個(gè)線程。其中界面事件線程用于調(diào)試使用,用于進(jìn)行上藥、發(fā)藥、出藥、盤點(diǎn)、單步動(dòng)作等指令的手動(dòng)調(diào)試。指令執(zhí)行線程執(zhí)行對(duì)應(yīng)的程序指令,將相應(yīng)的動(dòng)作指令進(jìn)行進(jìn)一步解析為硬件控制命令序列,控制電機(jī)、繼電器等電控單元。模塊指令的內(nèi)容從配置文件讀取,需要執(zhí)行的指令來自主程序消息或者下位機(jī)人機(jī)交互界面。后臺(tái)監(jiān)控線程執(zhí)行外檢測傳感器,電機(jī)控制器監(jiān)控,并將監(jiān)控到的狀態(tài)顯示到界面上。

      2.3.4 配置數(shù)據(jù)管理模塊

      配置數(shù)據(jù)管理模塊包含界面事件線程,指令執(zhí)行線程兩個(gè)線程。其中界面事件線程用于調(diào)試使用,用于文件讀取或?qū)懭霑r(shí)的手動(dòng)調(diào)試。指令執(zhí)行線程執(zhí)行對(duì)應(yīng)的程序指令,從磁盤讀或者寫相應(yīng)的配置文件,并將結(jié)果顯示到界面上,需要執(zhí)行的指令來自主程序消息或者配置數(shù)據(jù)管理界面。配置數(shù)據(jù)管理相關(guān)的文件主要有程序運(yùn)行的配置文件以及生成的日志文件兩大類。

      2.4 上位機(jī)接口協(xié)議設(shè)計(jì)

      上位機(jī)接口屬于通信協(xié)議,通常采用的通信指令采用XML進(jìn)行表達(dá)[16],協(xié)議具有較強(qiáng)的可讀性和拓展性,可以實(shí)現(xiàn)基本類型和自定義類型及其類型數(shù)組的表征,并且自帶語義及結(jié)構(gòu),解析相對(duì)簡單。

      以藥倉發(fā)藥指令為例,其指令設(shè)計(jì)如表1所示。

      表1 指令設(shè)計(jì)說明(機(jī)械手上藥)

      指令示例如下:

      機(jī)械手ID

      3 控制系統(tǒng)軟件實(shí)現(xiàn)

      控制系統(tǒng)按照模塊設(shè)計(jì)開發(fā),運(yùn)行過程中各模塊通過消息機(jī)制進(jìn)行通信,并根據(jù)消息內(nèi)容執(zhí)行響應(yīng)的指令。消息傳遞的過程如圖5所示。首先TCP通信線程后臺(tái)接收上位機(jī)TCP信息,解析指令后,發(fā)送消息到TCP執(zhí)行指令線程,TCP執(zhí)行指令線程收到消息后,關(guān)聯(lián)主程序指令,發(fā)送消息到主程序動(dòng)作調(diào)度線程,主程序動(dòng)作調(diào)度線程接收到消息后,進(jìn)一步解析為相應(yīng)的子模塊動(dòng)作線程指令,并通過消息發(fā)送到子模塊消息隊(duì)列,由子模塊執(zhí)行相應(yīng)的動(dòng)作序列。

      圖5 消息傳遞過程

      3.1 TCP通信模塊

      模塊運(yùn)行過程如圖6所示。TCP通信線程過程為:線程創(chuàng)建后,完成通信連接建立,初始化相關(guān)的狀態(tài)變量。其后線程切換到監(jiān)控TCP端口,當(dāng)接收到TCP信息后,對(duì)指令進(jìn)行解析,并根據(jù)指令內(nèi)容向執(zhí)行指令線程發(fā)送消息,通知執(zhí)行指令線程執(zhí)行具體的動(dòng)作;當(dāng)接收到停止指令時(shí),將進(jìn)行結(jié)束線程的動(dòng)作,并向執(zhí)行指令線程發(fā)送結(jié)束指令,最終結(jié)束整個(gè)系統(tǒng)。

      圖6 TCP通信線程和TCP指令執(zhí)行線程工作流程

      為了盡可能實(shí)現(xiàn)功能上的解耦,并沒有直接通過TCP通信線程向主程序線程發(fā)送消息,而是通過TCP指令執(zhí)行線程進(jìn)行發(fā)送,主要目的將TCP消息接收和向主程序發(fā)送任務(wù)消息的動(dòng)作解耦,便于通過界面事件(第三方)向指令執(zhí)行線程發(fā)送消息,達(dá)到執(zhí)行相應(yīng)主程序指令的目的。同時(shí),確保了TCP通信線線程和指令執(zhí)行線程代碼結(jié)構(gòu)的簡單,便于維護(hù)和拓展新功能。

      TCP通信模塊的主要功能包括將接收到的通信數(shù)據(jù)顯示在界面上以及手動(dòng)將特定的指令向外發(fā)送。單步執(zhí)行界面為執(zhí)行通信協(xié)議所定義的指令,即在上位機(jī)未參與的情況下,實(shí)現(xiàn)向外發(fā)布協(xié)議中相應(yīng)的指令,主要為了實(shí)現(xiàn)模塊的獨(dú)立調(diào)試。調(diào)試步驟類似于日志功能,用于記錄調(diào)試過程中產(chǎn)生的所有步驟的信息,用于對(duì)動(dòng)作流程以及時(shí)序進(jìn)行分析和優(yōu)化,以及排查有可能出現(xiàn)的異常。

      3.2 主程序模塊

      主程序模塊包括界面線程、主程序動(dòng)作調(diào)度線程和后臺(tái)監(jiān)控共3個(gè)線程,其中主程序動(dòng)作調(diào)度線程的運(yùn)行過程如圖7所示。

      圖7 TCP指令執(zhí)行線程和主程序調(diào)度線程工作流程

      首先,主程序初始化,啟動(dòng)所有子模塊線程,并初始化相關(guān)的程序內(nèi)部變量,啟動(dòng)完成后,主程序動(dòng)作調(diào)度線程監(jiān)控消息隊(duì)列中是否接收外部消息。當(dāng)接收到外部消息后,若非停止消息并且消息相關(guān)的子模塊處于就緒狀態(tài),則向子模塊發(fā)送動(dòng)作執(zhí)行消息,并重新監(jiān)控是否收到外部消息;若為停止消息,則向子模塊發(fā)送停止消息,并停止本模塊;若相關(guān)的子模塊處于非就緒狀態(tài),主程序動(dòng)作調(diào)度線程將進(jìn)行等待,直到子模塊就緒,再向子模塊發(fā)送動(dòng)作執(zhí)行消息。

      主程序的主要功能有:彈出子模塊,方便進(jìn)行子模塊的調(diào)試工作,直接通過界面對(duì)智能藥房功能動(dòng)作進(jìn)行調(diào)試,而不依賴于上位機(jī)系統(tǒng),提高調(diào)試效率。

      3.3 上藥、出藥、發(fā)藥模塊

      上藥、出藥、發(fā)藥模塊為智能藥房控制系統(tǒng)的底層模塊,實(shí)現(xiàn)對(duì)系統(tǒng)硬件進(jìn)行直接操作,完成相應(yīng)的動(dòng)作功能。執(zhí)行過程如圖8所示。軟件啟動(dòng)時(shí),子模塊動(dòng)作線程啟動(dòng),并進(jìn)行初始化,隨即監(jiān)控相關(guān)的消息隊(duì)列,當(dāng)收到消息后,子模塊執(zhí)行相應(yīng)動(dòng)作,執(zhí)行完成后,從消息隊(duì)列按順序拉取下一條指令,直到全部指令執(zhí)行結(jié)束。當(dāng)子模塊接收到停止消息時(shí),將直接退出線程,并關(guān)閉子模塊。

      各模塊實(shí)現(xiàn)均按照相同的框架完成,上藥模塊、出藥模塊、發(fā)藥模塊界面設(shè)計(jì)如圖8所示。

      圖8 主程序調(diào)度線程和子模塊執(zhí)行線程工作流程

      上藥模塊由上藥平臺(tái)、龍門以及機(jī)械手組成,實(shí)現(xiàn)對(duì)模塊相關(guān)的電機(jī)控制、傳感器數(shù)據(jù)采集。主要功能有電機(jī)調(diào)試、傳感器調(diào)試、標(biāo)定功能調(diào)試、單步調(diào)試等。調(diào)試時(shí)以界面事件為載體,向子模塊動(dòng)作線程(上藥龍門機(jī)械手執(zhí)行線程)發(fā)送消息,實(shí)現(xiàn)對(duì)每一個(gè)步驟的調(diào)試過程。

      出藥模塊包括左提籃機(jī)和右提籃機(jī),由于左右出藥模塊同步出藥的需求,將該功能分為左提籃機(jī)和右提籃機(jī)兩個(gè)模塊。出藥模塊僅由電機(jī)組成,主要功能為電機(jī)調(diào)試。調(diào)試時(shí)以界面事件為載體,向子模塊動(dòng)作線程(例如右提籃機(jī)動(dòng)作執(zhí)行線程)發(fā)送消息,實(shí)現(xiàn)對(duì)電機(jī)相關(guān)功能的調(diào)試過程。

      發(fā)藥模塊主要實(shí)現(xiàn)藥倉的參數(shù)設(shè)置與保存,硬件相關(guān)動(dòng)作(復(fù)位、發(fā)藥、老練等)的調(diào)試。

      3.4 配置數(shù)據(jù)管理模塊

      軟件設(shè)計(jì)上為了隔離開發(fā)和調(diào)試的過程,將智能藥房位置相關(guān)、動(dòng)作相關(guān)、軟件設(shè)定相關(guān)的參數(shù)均做成了可配置的形式,配置數(shù)據(jù)管理模塊對(duì)程序所有的配置數(shù)據(jù)進(jìn)行了匯總,并予以顯示。

      4 實(shí)驗(yàn)結(jié)果與分析

      智能藥房控制系統(tǒng)基于消息對(duì)子模塊系統(tǒng)進(jìn)行控制,消息內(nèi)容通過參數(shù)配置調(diào)試界面輸出,可詳細(xì)的顯示智能藥房控制系統(tǒng)的運(yùn)行狀態(tài),例如實(shí)際運(yùn)行步驟順序和耗時(shí)等相關(guān)信息。調(diào)試過程可根據(jù)相關(guān)信息,分析故障原因,并優(yōu)化智能藥房控制參數(shù),提高系統(tǒng)效能。

      為驗(yàn)證智能藥房控制系統(tǒng)實(shí)際效能,對(duì)智能藥房控制系統(tǒng)做了單藥單發(fā)藥實(shí)驗(yàn),多藥單發(fā)藥實(shí)驗(yàn)和上藥實(shí)驗(yàn),測試結(jié)果如表2~4所示。智能藥房發(fā)藥綜合時(shí)間與藥品發(fā)藥頻次和藥品位置有關(guān)。本文描述的智能藥房具體情況如下:1)包含3個(gè)模塊化的藥倉,每個(gè)藥倉有16層,每層包含13~15個(gè)藥槽編號(hào);2)上藥模塊包含2條上藥軌道和2個(gè)緩存軌道,可一次性完成8盒藥品的上藥動(dòng)作;3)包含6個(gè)出藥口。實(shí)際控制發(fā)藥時(shí),根據(jù)被發(fā)藥品的位置,會(huì)自動(dòng)選擇藥品的出藥位置,以減少發(fā)藥時(shí)間。

      對(duì)于單個(gè)藥單進(jìn)行發(fā)藥,發(fā)藥實(shí)驗(yàn)取最高層藥槽、最底層藥槽、最左藥倉、最右藥倉、單盒、多盒、單藥單、多藥單等情況進(jìn)行測試,發(fā)藥時(shí)間介于4.5~11.6 s之間,單種藥品數(shù)量越多,發(fā)藥位置越高,發(fā)藥位置距離藥籃越遠(yuǎn),發(fā)藥時(shí)間越長。單個(gè)藥單的平均發(fā)藥時(shí)間為8 s左右。

      對(duì)于多個(gè)藥單進(jìn)行發(fā)藥,由于發(fā)藥時(shí)左右出藥口出藥過程是并行的,平均單個(gè)藥單的發(fā)藥時(shí)間為7 s左右。

      上藥耗時(shí)和藥品目標(biāo)槽位與上藥模塊的距離相關(guān),距離越近,上藥時(shí)間越短,單次上藥平均時(shí)間為7.6 s,即0.95 s/盒。

      表2 單藥單發(fā)藥過程測試結(jié)果

      表3 多藥單發(fā)藥過程測試結(jié)果

      表4 上藥過程測試結(jié)果

      5 結(jié)束語

      本文介紹了智能藥房控制系統(tǒng)的軟件設(shè)計(jì)和實(shí)現(xiàn),提出了一種基于消息的模塊化、多線程控制軟件設(shè)計(jì)架構(gòu),在自動(dòng)化設(shè)備控制系統(tǒng)開發(fā)有較好的可復(fù)用性。

      根據(jù)本智能藥房在醫(yī)院的使用情況來看,智能藥房控制系統(tǒng)的模塊性強(qiáng),安裝維護(hù)簡單,運(yùn)行穩(wěn)定可靠,對(duì)醫(yī)院藥房工作人員的工作效率提升明顯,具有較大的應(yīng)用前景。

      猜你喜歡
      上藥主程序線程
      淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
      電控冰箱軟件模塊化設(shè)計(jì)
      日用電器(2019年12期)2019-02-26 01:53:06
      宮頸環(huán)切術(shù)治療上藥治療無效的宮頸炎的效果觀察
      時(shí)光倒流 換回PotPlayer老圖標(biāo)
      淺談linux多線程協(xié)作
      藥房快速發(fā)藥系統(tǒng)中的上藥管理與控制研究
      Linux線程實(shí)現(xiàn)技術(shù)研究
      上藥“黑天鵝”:改革派的覆沒
      未經(jīng)授權(quán)的第三方軟件侵權(quán)問題研究
      ——以“騰訊與360之爭”為視角*
      圈子文化”藥倒“上藥”總裁
      南开区| 商河县| 威海市| 金阳县| 竹北市| 东莞市| 黄浦区| 丹棱县| 桑植县| 晋中市| 丰原市| 旬邑县| 江口县| 德江县| 钟山县| 临海市| 康平县| 萨迦县| 西峡县| 高青县| 滨州市| 临颍县| 衡阳县| 佳木斯市| 安丘市| 吕梁市| 巴塘县| 宁津县| 屏边| 中阳县| 天门市| 鄂温| 尉氏县| 榆社县| 海门市| 绥宁县| 宁国市| 马关县| 马龙县| 峡江县| 乐东|